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

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

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

排序方式为 时,它应变为:name

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

答案 1

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)

答案 2
import operator

按键='name'对词典列表进行排序:

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

按键='age'对词典列表进行排序:

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

推荐