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

Python sorted()函数报错:预期1个参数却传入3个,求解析

Python 3.9中sorted()函数传参报错的原因解析

你遇到的TypeError: sorted expected 1 argument, got 3错误,核心原因是sorted()的key和reverse参数必须以关键字参数形式传递,不能通过位置顺序传入。

函数参数规则说明

Python中sorted()函数的官方定义为:

sorted(iterable, *, key=None, reverse=False)

这里的*是参数分隔符,它明确表示:*之后的所有参数(也就是key和reverse)只能作为关键字参数传入,不接受位置参数传递。

两种写法的对比

  • 正确写法:

    sorted(circus, key = lambda d: d[4], reverse = True)
    

    这里key和reverse都以关键字参数的形式传递,完全符合函数的参数定义要求,因此可以正常执行。

  • 错误写法:

    sorted(circus, lambda z: z[4], True)
    

    你将lambda z: z[4]和True作为位置参数传递,但sorted()在第一个位置参数iterable之后,不接受任何额外的位置参数,因此函数会认为你传入了3个位置参数,超出了它的预期,从而抛出报错。

这种参数设计是Python为了避免参数歧义、提升代码可读性而做的规定,确保后续即使函数更新,也不会因为参数位置变化导致旧代码出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 15:34:56