在python中对关联数组进行排序

Sorting associative arrays in Python

本问题已经有最佳答案,请猛点这里访问。

在Python中,关联数组如何按键排序?

我有以下结构:

1
2
3
4
5
people = [
    {'name' : 'Bob', 'number' : '123'},
    {'name' : 'Bill', 'number' : '234'},
    {'name' : 'Dave', 'number' : '567'},
]

我想按名字排序。是否有内置函数来执行此操作?


使用sorted函数的key参数:

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

有一个很好的分类方法可以解释这是如何工作的。

1
2
3
4
5
6
7
8
9
>>> 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'}]

或者,您可以使用

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

使用operator.itemgetter('name')比使用稍快lambda dct: dct['name']