这是一个新手问题,我找不到准确的答案。我想根据值按降序对字典进行排序。即......
dict = {'ann': 9, 'tom': 21, 'eddie': 12, 'fred': 5}
我知道这行得通...
>>> sorted(dict.items(), key=lambda x: x[1], reverse=True)
[('tom', 21), ('eddie', 12), ('ann', 9), ('fred', 5)]
但我想了解这部分是如何工作的......
x: x[1]
这如何匹配值属性?
请您参考如下方法:
dict.items() 返回一个 (key, value) 对列表,x[1] 就是 该对的值部分:
>>> d = {'ann': 9, 'tom': 21, 'eddie': 12, 'fred': 5}
>>> d.items()
[('ann', 9), ('fred', 5), ('eddie', 12), ('tom', 21)]
>>> d.items()[0]
('ann', 9)
>>> d.items()[0][1]
9
>>> (lambda x: x[1])(d.items()[0])
9
sorted() 将输入序列中的每个元素(如 ('ann', 9) 等)传递到 key功能。 x 就是 ('ann', 9) 而 x[1] 就是 9。
