内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
我需要先对字典排序,然后用reverse=True
,对于重复的值,按键排序,reverse=False
到目前为止,我有这个
dict = [('B', 3), ('A', 2), ('A', 1), ('I', 1), ('J', 1)] sorted(dict.items(), key=lambda x: (x[1],x[1]), reverse=True)
还会回来..。
[('B', 3), ('A', 2), ('J', 1), ('I', 1), ('A', 1)]
但我需要的是:
[('B', 3), ('A', 2), ('A', 1), ('I', 1), ('J', 1)]
当值相等时,我只能按指定的方式以递减的方式对键进行排序。
In [4]: l = [('B', 3), ('A', 2), ('A', 1), ('I', 1), ('J', 1)] In [5]: sorted(l, key=lambda (x,y):(-y,x)) Out[5]: [('B', 3), ('A', 2), ('A', 1), ('I', 1), ('J', 1)]