2017-01-29 58 views
0

我想按字母顺序和长度排序的字符串列表,所以它被排序是这样的:在按长度排序之前按字母顺序排序列表?

["a", "b", "ba", "ab", "cccc", "cccef", "c"] 

["a", "ab", "b", "ba", "c", "cccc", "cccef"] 

这可能是一个重复的问题和解决方案可能很简单,但我似乎无法弄清楚。

+0

这是默认的(词典)排序:'sorted([“a”,“b”,“ba”,“ab”,“cccc”,“cccef”,“c”])== [“a”,“ab”,“b”,“ba”,“c”,“cccc”,“cccef”]'。 –

回答

0

第一个参数是按字母顺序排序的x(默认),第二个是按长度排序的len(x)。

s = ["a", "b", "ba", "ab", "cccc", "cccef", "c"] 
s = sorted(s, key = lambda x: (x,len(x))) 
print (s) 
>>>['a', 'ab', 'b', 'ba', 'c', 'cccc', 'cccef']