如何按字典的值对字典列表进行排序?

新手上路,请多包涵

如何按特定键的值对字典列表进行排序?鉴于:

 [{'name': 'Homer', 'age': 39}, {'name': 'Bart', 'age': 10}]

name 排序时,应变为:

 [{'name': 'Bart', 'age': 10}, {'name': 'Homer', 'age': 39}]

原文由 masi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 542
2 个回答

sorted() 函数采用 key= 参数

newlist = sorted(list_to_be_sorted, key=lambda d: d['name'])

或者,您可以使用 operator.itemgetter 而不是自己定义函数

from operator import itemgetter
newlist = sorted(list_to_be_sorted, key=itemgetter('name'))

为了完整起见,添加 reverse=True 以降序排序

newlist = sorted(list_to_be_sorted, key=itemgetter('name'), reverse=True)

原文由 Mario F 发布,翻译遵循 CC BY-SA 4.0 许可协议

import operator

按 key=‘name’ 对字典列表进行排序:

 list_of_dicts.sort(key=operator.itemgetter('name'))

按 key=‘age’ 对字典列表进行排序:

 list_of_dicts.sort(key=operator.itemgetter('age'))

原文由 vemury 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题