Skip to main content
 首页 » 编程设计

使用 Sorted 对 Python 字典进行排序

2025年05月04日8grandyang

这是一个新手问题,我找不到准确的答案。我想根据值按降序对字典进行排序。即......

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。