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

如何使用Python对字典列表按照age字段进行排序

Python 字典列表按age字段排序实现方案

示例数据

user_list = [{"age":10,"name":"a"},{"age":11,"name":"b"},{"age":10,"name":"c"},{"age":11,"name":"d"}]

实现方法

方法1:生成新的排序后列表(不修改原数据)

使用Python内置的sorted()函数,会返回一个全新的排序后列表,原列表保持不变,适合需要保留原始数据的场景:

sorted_list = sorted(user_list, key=lambda x: x["age"])
# 输出结果:[{'age': 10, 'name': 'a'}, {'age': 10, 'name': 'c'}, {'age': 11, 'name': 'b'}, {'age': 11, 'name': 'd'}]

方法2:原地排序(修改原列表,性能更高)

使用列表自带的sort()方法,直接在原列表上做排序,不需要额外的内存空间存储新列表,适合数据量较大、不需要保留原始顺序的场景:

user_list.sort(key=lambda x: x["age"])
# 排序后原user_list的内容和上面方法1的sorted_list一致

扩展说明

  • 默认排序规则为升序,如果需要按age降序排列,添加reverse=True参数即可:
    sorted_list = sorted(user_list, key=lambda x: x["age"], reverse=True)
    
  • 如果age相同的情况下需要按name做二次排序,将key的返回值改为元组即可,支持多字段优先级排序:
    # 先按age升序,age相同按name升序
    sorted_list = sorted(user_list, key=lambda x: (x["age"], x["name"]))
    
  • 如果不能保证所有字典都存在age字段,可以用get()方法设置默认值避免触发KeyError:
    # 没有age字段的元素默认按age=0排序,排在最前面
    sorted_list = sorted(user_list, key=lambda x: x.get("age", 0))
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:54:01