sar*_*mba 4 python sorting tuples list
我有一个元组列表
alist = [(u'First', 23), (u'Second', 64),(u'last', 19)]
Run Code Online (Sandbox Code Playgroud)
我想按字母顺序排序(和区分大小写)来得到这个:
(u'last', 19), (u'First', 23), (u'Second', 64)
Run Code Online (Sandbox Code Playgroud)
我试过这个:
sorted(alist, key=lambda x: x[0], reverse= True)
Run Code Online (Sandbox Code Playgroud)
不幸的是我明白了:
(u'last', 19), (u'Second', 64), (u'First', 23),
Run Code Online (Sandbox Code Playgroud)
包含一个指示第一个字符是否为大写的键:
>>> sorted([(u'First', 23), (u'Second', 64),(u'last', 19)], key=lambda t: (t[0][0].isupper(), t[0]))
[(u'last', 19), (u'First', 23), (u'Second', 64)]
Run Code Online (Sandbox Code Playgroud)
False之前进行排序,True因此具有小写首字母的单词将在具有大写首字母的单词之前排序.否则按字典顺序对单词进行排序.