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

Python如何基于两个自定义字典规则排序列表并解决lambda参数报错

错误原因
  • sorted()的key参数要求传入的函数仅接收1个参数,对应待排序列表中的单个元素,你定义的lambda要求传入2个参数,不符合调用规则,因此触发参数缺失报错。
  • 你的排序逻辑需要先按年份升序排列,同年份下再按月份升序排列,key的返回值顺序需要对应这个优先级。
最简修改方案

无需额外拆分列表,直接对原列表L排序即可:

sorted_L = sorted(L, key=lambda x: (dicYears[x[1]], dicMonths[x[0]]))
若要保留你原有拆分列表的写法

修改为以下代码即可:

aa = [(elt[0], elt[1]) for elt in L]
# 单个参数x对应aa里的每个(字母,数字)元组
sorted_aa = sorted(aa, key=lambda x: (dicYears[x[1]], dicMonths[x[0]]))
# 如需转回原字符串格式,可追加下面这行
sorted_L = [''.join(item) for item in sorted_aa]

运行后得到的结果和你预期的示例完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:09:04