我正在尝试按属性对一些值进行排序,如下所示:
a = sorted(a, lambda x: x.modified, reverse=True)
我收到此错误消息:
<lambda>() takes exactly 1 argument (2 given)
为什么?我如何解决它?
这个问题最初是为 Python 2.x 编写的。在 3.x 中,错误消息会有所不同: TypeError: sorted expected 1 argument, got 2
。
原文由 Niklas Rosencrantz 发布,翻译遵循 CC BY-SA 4.0 许可协议
利用
在 Python 2.x 上,
sorted
函数按以下顺序获取其参数:因此,如果没有
key=
,您传入的函数将被视为cmp
接受 2 个参数的函数。