对包含字典的列表进行排序

时间:2015-08-19 23:31:13

标签: python sorting

我有一个如下所示的列表:

some_list = [{'id':1, 'name':'Steve', 'age':23}, {'id':2, 'name':'John', 'age':17}, {'id':3, 'name':'Matt', 'age':31}]

我想将列表中的名称值排序到字典中。所以不是上面的顺序,那就是约翰然后是马特然后史蒂夫。

我该怎么做?感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用operator.itemgetter

>>> import operator
>>> some_list = [dict(id=1, name='Steve', age=23), dict(id=2, name='John', age=17), dict(id=3, name='Matt', age=31)]
>>> sorted(some_list, key=operator.itemgetter('name'))
[{'id': 2, 'age': 17, 'name': 'John'}, {'id': 3, 'age': 31, 'name': 'Matt'}, {'id': 1, 'age': 23, 'name': 'Steve'}]

lambda函数:

>>> some_list = [dict(id=1, name='Steve', age=23), dict(id=2, name='John', age=17), dict(id=3, name='Matt', age=31)]
>>> sorted(some_list, key=lambda x: x['name'])
[{'id': 2, 'age': 17, 'name': 'John'}, {'id': 3, 'age': 31, 'name': 'Matt'}, {'id': 1, 'age': 23, 'name': 'Steve'}]