Python:根据值对Python字典进行排序的最佳方法;值是列表

2024-04-25 15:17:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一本python字典

d = {
    "Random" : [1,2,3], "Stupid" :  [1], "Gross" : [1,1,1,1,1], "Ugly" : [2,1,1,1]
    }

上面的列表应该根据列表值的count排序。在

我试过了:sorted(d, key=d.get, reverse=True)

但我似乎没有得到正确的结果。在


Tags: keytrue列表get字典排序countrandom
2条回答

既然你是从字典开始的,你大概需要用一个字典而不是一个列表来结束:

>>> import collections
>>> d = {
...     "Random" : [1,2,3], "Stupid" :  [1], "Gross" : [1,1,1,1,1], "Ugly" : [2,1,1,1]
...     }
>>> sd = collections.OrderedDict(sorted(d.items(), key=lambda t: -len(t[1])))
>>> sd
OrderedDict([('Gross', [1, 1, 1, 1, 1]), ('Ugly', [2, 1, 1, 1]), ('Random', [1, 2, 3]), ('Stupid', [1])])
>>> 

你是说length?在

>>> sorted(d, key=lambda k: -len(d[k]))
['Gross', 'Ugly', 'Random', 'Stupid']
>>> sorted(d, key=lambda k: len(d[k]), reverse=True)
['Gross', 'Ugly', 'Random', 'Stupid']

相关问题 更多 >