Pythonで連想配列をキーでソートするにはどうすればよいですか?
私は次の構造を持っています:
people = [
{'name' : 'Bob', 'number' : '123'},
{'name' : 'Bill', 'number' : '234'},
{'name' : 'Dave', 'number' : '567'},
]
名前順に並べたい。これを行う組み込み関数はありますか?
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'))
を使用するoperator.itemgetter('name')
と、 を使用するよりもわずかに高速です
lambda dct: dct['name']
。