2013-05-24 11 views
11

Wie kann ein assoziatives Array nach Schlüssel in Python sortiert werden?Sortierung von assoziativen Arrays in Python

Ich habe die folgende Struktur:

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

ich nach Namen sortieren möchten. Gibt es dafür eine eingebaute Funktion?

+0

Haben Sie google "Sortierung von assoziativen Arrays in Python"? Was war falsch an der Dokumentation, die Sie beim Sortieren von Associate-Arrays gefunden haben? – djechlin

+0

Googeln Sie den Titel dieser Frage ... bringt Sie direkt zu dieser Frage zurück. – worc

Antwort

7

Verwenden Sie die key Parameter sorted Funktion:

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

Es ein excellent Sorting HOWTO ist, die erklärt, wie das funktioniert.


>>> 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'}] 

Alternativ können Sie

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

Mit operator.itemgetter('name') ist etwas schneller als lambda dct: dct['name'] mit verwenden.

Verwandte Themen