请教如何用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去截取之后转,但是又有纯数字!求大神指导

        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();
        

参考技术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函数的主要内容,如果未能解决你的问题,请参考以下文章

excel中怎么将英文单词按字母顺序排序?

有人能帮忙写个简单的按名字首字母排序python程序吗?

有人能帮忙写个简单的按名字首字母排序python程序吗?

苹果6通讯录怎么按字母顺序排列

c语言,输入五个国家的名字,按字母顺序(即按ASCII码从小到大的顺序)排列输出。

mysql根据汉字首字母排序的方法并按字母分组