我有一个这样的列表:
li = [
{
'name': 'Lee',
'age': 22
},
{
'name': 'Mike',
'age': 34
},
{
'name': 'John',
'age': 23
}
]
我想用sorted
方法对列表进行排序,并age
按键排序
如何实现?
我有一个这样的列表:
li = [
{
'name': 'Lee',
'age': 22
},
{
'name': 'Mike',
'age': 34
},
{
'name': 'John',
'age': 23
}
]
我想用sorted
方法对列表进行排序,并age
按键排序
如何实现?
使用按键功能:
li_sorted = sorted(li, key=lambda x: x['age'])
@kojiro 建议的 Python3 等价物是这样的
>>> sorted(li, key=lambda x:sorted(x.items()))
[{'age': 22, 'name': 'Lee'}, {'age': 23, 'name': 'John'}, {'age': 34, 'name': 'Mike'}]
显然这比
>>> sorted(li, key=lambda x:x['age'])
[{'age': 22, 'name': 'Lee'}, {'age': 23, 'name': 'John'}, {'age': 34, 'name': 'Mike'}]
反正。还有一个优点是它不依赖于以下事实'age' < 'name'
以下是如何使用itemgetter
>>> from operator import itemgetter
>>> sorted(li, key=itemgetter('age'))
[{'age': 22, 'name': 'Lee'}, {'age': 23, 'name': 'John'}, {'age': 34, 'name': 'Mike'}]