请教如何用python按字母顺序排序英文名字但是不可以用sort函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教如何用python按字母顺序排序英文名字但是不可以用sort函数相关的知识,希望对你有一定的参考价值。
参考技术A 刚才试了一下,字符串是可以直接比较的,但是要区分大小写。'a'<'b'
'a'>'B'
所以首先都变成小写吧。
然后
sorted_string=reduce(lambda
x,y:x>y
and
y+x
or
x+y,lowered_string
)
这样会失去原字符串的大小写。
如果想保留大小写,
让他们等效,恐怕需要专门定义一个函数来比较,
一个lambda搞不定。
------------------
看错了,是排序英文名,也是同样的方法,把每个名字第一字符拿出来比较就行了。
linq 字母数字组合字符串排序
我在数据库有一个字段的值是这样的,字符串类型
var query= from top in context .Yield
select new SizeDTO()
size= context .size
.ToList();
结果是:2 j11 j11.5 2.5 3 4 k5 b6.5 7 8 9 10
我想对一结果排序,之前我想这样排的
.ToList().OrderBy(c => Convert.ToDouble(c.size_nm.ToString()));转型后排,但是里面有些值有字母,我也想过使用Substring去截取之后转,但是又有纯数字!求大神指导
string[] all = new string[] "a2", "b6", "4", "5", "3", "cc1.1" ;
var v = all.Select(a => new
a,
ints = new string(a.Where(c => char.IsDigit(c) ||
c == '.').ToArray())
).Select(b => new
s = b.a,
i = Convert.ToDouble(b.ints)
).OrderBy(o => o.i).Select(r => r.s);
foreach (var x in v)
Console.WriteLine(x);
Console.ReadLine();
参考技术A static void Main(string[] args)
string[] all = new string[] "a2", "b6", "4", "5", "3", "cc1.1" ;
var v = all.Select(a => new
a,
ints = new string(a.Where(c => char.IsDigit(c) ||
c == '.').ToArray())
).Select(b => new
s = b.a,
i = Convert.ToDouble(b.ints)
).OrderBy(o => o.i).Select(r => r.s);
foreach (var x in v)
Console.WriteLine(x);
Console.ReadLine();
参考技术B 取第一个字母用 编码排序呢?
以上是关于请教如何用python按字母顺序排序英文名字但是不可以用sort函数的主要内容,如果未能解决你的问题,请参考以下文章