Wie kann ich eine Liste von Wörterbüchern nach einem Wert des Wörterbuchs sortieren?

Ich habe eine Liste von Wörterbüchern und möchte, dass jedes Element nach einem bestimmten Eigenschaftswert sortiert wird.

Berücksichtigen Sie das folgende Array,

[{'name':'Homer', 'age':39}, {'name':'Bart', 'age':10}]

Nach Name sortiert, sollte es zu

[{'name':'Bart', 'age':10}, {'name':'Homer', 'age':39}]
my_list = [{'name':'Homer', 'age':39}, {'name':'Bart', 'age':10}]

my_list.sort(lambda x,y : cmp(x['name'], y['name']))

Meine_Liste" wird nun so sein, wie Sie es wünschen.

Das neue Argument "Schlüssel" ist effizienter und übersichtlicher. Eine bessere Antwort sieht jetzt so aus:

my_list = sorted(my_list, key=lambda k: k['name'])

...das Lambda ist, IMO, einfacher zu verstehen als operator.itemgetter, aber YMMV.

Kommentare (0)

Ich nehme an, Sie haben gemeint:

[{'name':'Homer', 'age':39}, {'name':'Bart', 'age':10}]

Dies würde so sortiert werden:

sorted(l,cmp=lambda x,y: cmp(x['name'],y['name']))
Kommentare (0)

Sie müssen Ihre eigene Vergleichsfunktion implementieren, die die Wörterbücher nach den Werten der Namensschlüssel vergleicht. Siehe Sorting Mini-HOW TO aus PythonInfo Wiki

Kommentare (0)