Cra*_*erb 3 python sorting dictionary list
好的,这就是我要做的...我知道itemgetter()排序可以按字母排序很容易,但如果我有这样的东西:
[{'Name':'TOTAL','Rank':100},{'Name':'Woo Company','Rank':15},{'Name':'ABC Company','Rank':20} ]
我希望它按字母顺序排序(按名称)+包括条件:名称:'TOTAL'应该在序列的最后列出,如下所示:
[{'姓名':'ABC公司','排名':20},{'姓名':'Woo公司','排名':15},{'姓名':'总计','排名':100} ]
我该怎么办?
Jar*_*die 10
这里最好的方法是装饰排序键... Python将按元组顺序对元组进行排序,因此使用排序条件构建元组键:
sorted(list_of_dicts, key=lambda d: (d['Name'] == 'TOTAL', d['Name'].lower()))
Run Code Online (Sandbox Code Playgroud)
这导致排序键:
由于False早于True排序,名称不是TOTAL的那些将最终结合在一起,然后按字母顺序排序,TOTAL将最终结束.