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

使用Tuple与Lambda时sorted报'Tuple'不可调用错误的原因排查

问题分析与解决

你的代码报错是因为key参数被错误地传成了一个元组,而sorted()要求key必须是一个可调用对象(比如函数、lambda表达式这类)。

看你的代码:

list_ = [(34, 21, 56), (24, 12, 32), (42, 34, 42), (27, 11, 32)]
m = sorted(list_, key=(lambda x: x[1], list_))
print(m)

这里key=(lambda x: x[1], list_)是把lambda表达式和list_打包成了元组,当sorted尝试调用这个元组作为排序依据时,自然会抛出“元组不可调用”的错误。

正确写法

只需要把key参数改成单独的lambda表达式即可,不需要额外传入list_——sorted已经通过第一个参数明确了要排序的对象:

list_ = [(34, 21, 56), (24, 12, 32), (42, 34, 42), (27, 11, 32)]
m = sorted(list_, key=lambda x: x[1])
print(m)

运行这段代码就能得到你预期的输出:

[(27, 11, 32), (24, 12, 32), (34, 21, 56), (42, 34, 42)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 00:25:54