23

如何在Python中按键对关联数组进行排序中按键对关联数组进行排序?

我有以下结构:

people = [
    {'name' : 'Bob', 'number' : '123'},
    {'name' : 'Bill', 'number' : '234'},
    {'name' : 'Dave', 'number' : '567'},
]

我想按名称排序。是否有内置功能可以做到这一点?

4

1 回答 1

13

使用sorted函数的key参数:

sorted(people, key=lambda dct: dct['name'])

有一个很好的 Sorting HOWTO解释了它是如何工作的。


>>> people = [
    {'name' : 'Bob', 'number' : '123'},
    {'name' : 'Bill', 'number' : '234'},
    {'name' : 'Dave', 'number' : '567'},
]       
>>> sorted(people, key=lambda dct: dct['name'])
[{'name': 'Bill', 'number': '234'}, 
 {'name': 'Bob', 'number': '123'}, 
 {'name': 'Dave', 'number': '567'}]

或者,您可以使用

import operator
sorted(people, key=operator.itemgetter('name'))

usingoperator.itemgetter('name')比 using 稍快 lambda dct: dct['name']

于 2013-05-24T21:18:43.947 回答