You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需使用lambda实现字典items按值逆序排序的替代写法

无需lambda实现字典按值降序排序的方案

你要实现的按字典值降序排序的需求,可以结合operator.itemgetter和sorted的内置reverse参数完成,完全不需要使用lambda表达式:

具体实现代码

from operator import itemgetter

# 等效于 sorted(dict.items(), key=lambda i: -i[1])
sorted_result = sorted(your_dict.items(), key=itemgetter(1), reverse=True)

原理解释

  • itemgetter(1)会自动提取每个键值对元组的第二个元素(即字典的值)作为排序键,功能和lambda i: i[1]完全一致
  • reverse=True指定排序结果为降序,等价于原写法中对排序键取负的降序效果

运行验证示例

你可以用以下代码验证两种写法的输出完全一致:

test_dict = {"apple": 5, "banana": 2, "orange": 4, "grape": 7}

# 原lambda写法
print(sorted(test_dict.items(), key=lambda i: -i[1]))
# 输出:[('grape', 7), ('apple', 5), ('orange', 4), ('banana', 2)]

# 替代写法
from operator import itemgetter
print(sorted(test_dict.items(), key=itemgetter(1), reverse=True))
# 输出:[('grape', 7), ('apple', 5), ('orange', 4), ('banana', 2)]

之前使用operator结果异常的原因

大概率是没有添加reverse=True参数,默认使用升序排序导致结果和预期相反。

内容的提问来源于stack exchange,提问作者mangotango

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 04:54:07