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

Lambda与函数定义的差异解析及字典按值排序的函数实现

字典按值排序:lambda与自定义函数的差异及正确写法

错误原因

你用自定义函数时报错“x未定义”,是因为给sorted的key参数传了func(x)——这是直接调用函数并传入未定义的变量x,而不是传递函数本身。

而lambda表达式lambda x: x[1]本质是一个匿名函数对象,你直接把这个函数对象传给了key,sorted会自动遍历a.items()中的每个元素,把元素作为参数传给这个lambda函数处理,所以不会报错。

正确的自定义函数实现

只需要把函数名传给key即可,不需要加括号和参数,sorted内部会自动把每个元素传给函数:

def func(item):
    return item[1]
sorted_dict = sorted(a.items(), key=func)

这样写法和lambda版本的逻辑完全一致,都能实现按字典值排序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 03:50:54