我有一本这样的字典:
{
'Horror': 2,
'Romance': 2,
'Comedy': 2,
'Action': 3,
'Adventure': 1,
'History': 2
}
我想按值排序,但当值相等时,我想按字母排序。这意味着输出是:
Action : 3
Comedy : 2
History : 2
Horror : 2
Romance : 2
Adventure : 1
您可以使用sorted中的key
参数来使用
x[0] - Specifies your key
x[1] - Specifies your values
基本上在lambda实现中,您将优先考虑values (- implies desc)
而不是keys
>>> d = {'Horror': 2, 'Romance': 2, 'Comedy': 2, 'Action': 3, 'Adventure': 1, 'History': 2}
>>> dict(sorted(d.items(),key=lambda x:(-x[1],x[0])))
{'Action': 3, 'Comedy': 2, 'History': 2, 'Horror': 2, 'Romance': 2, 'Adventure': 1}
可以使用sorted
的key
参数
构建一个自定义元组,值在前,键在后,使用负值反转值的排序顺序:
d = {'Horror': 2, 'Romance': 2, 'Comedy': 2,
'Action': 3, 'Adventure': 1, 'History': 2}
{k:v for k,v in sorted(d.items(), key=lambda x: (-x[1], x[0]))}
输出:
{'Action': 3,
'Comedy': 2,
'History': 2,
'Horror': 2,
'Romance': 2,
'Adventure': 1}
正在更新排序后的键值。
mydict = {}
for i,v in sorted(d.items()):
mydict.update({i:v})
print(mydict)