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

如何使用lambda对包含字典的元组列表按指定属性值排序

错误原因分析

你编写的lambda表达式逻辑存在问题:[x]会将当前遍历到的列表元素x封装为仅含1个元素的新列表,该列表的合法索引只有0,尝试访问索引1自然会抛出索引越界错误。

正确实现

sort方法的key函数接收的参数x就是原列表中的每一个元组元素,直接取元组的索引1拿到目标字典,再读取对应属性即可:

# 按prop1的值升序排序
l.sort(key = lambda x: x[1]['prop1'])

扩展用法

  • 多属性排序:如果需要先按prop1排序,prop1取值相同时再按prop2排序,写法如下:
l.sort(key = lambda x: (x[1]['prop1'], x[1]['prop2']))
  • 降序排序:添加reverse=True参数即可实现降序:
l.sort(key = lambda x: x[1]['prop1'], reverse=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:45:06