假设有如下字典:

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

name排序,应变为:

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

方法一、使用内置函数sorted()排序

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

方法二、使用operator模块中的itemgetter函数排序

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

上面的两个方法默认都是升序排列(默认都省略了 reverse 参数),如果想要降序排列,那么添加 reverse=True 即可。

//sorted()
list = sorted(list_to_be_sorted, key=lambda d: d['name'], reverse=True) 
//operator.itemgetter()
from operator import itemgetter
list = sorted(list_to_be_sorted, key=itemgetter('name'), reverse=True)