按值和键对字典进行排序



我有一本这样的字典:

{
'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}

可以使用sortedkey参数

构建一个自定义元组,值在前,键在后,使用负值反转值的排序顺序:

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)

相关内容

  • 没有找到相关文章

最新更新