我需要先按值对字典进行排序,然后再对它进行排序,然后我上网了,发现了这个>> Sorting a dictionary by value then key <<有人回答说:“您需要利用值是数字这一事实。 ”并留下了代码
>>> [v[0] for v in sorted(d.iteritems(), key=lambda(k, v): (-v, k))]
['peach', 'banana', 'beetroot', 'almond', 'apple']
-v是什么意思? v和-v和有什么区别?
答案 0 :(得分:1)
x.items()
将Counter(...)
变成元组列表:[('a', 5), ('b', 3), ('c': 7)]
。 key
参数说明应使用什么值对列表进行排序-k[1]
指向k
元组的第二个元素。
并且因为键实际上是-k[1]
,所以结果列表以相反的顺序排序,从计数最大的项到计数最小的项。