Liste von dicts nach bestimmten Argument sortieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
microkernel
User
Beiträge: 271
Registriert: Mittwoch 10. Juni 2009, 17:27
Wohnort: Frankfurt
Kontaktdaten:

Hallo,
ich wollte mal fragen wie es möglich ist eine Liste von mehren dicts nach einen bestimmten Key zu sortieren.
Meine Liste sieht ungefähr so aus:

Code: Alles auswählen

[{..., "rank" : 3}, {..., "rank" : 0.4}, {..., "rank" : 7}, {..., "rank" : 9}]
Nun würde ich sie gerne nach "rank" sortieren (und zwar so das der höchste Wert am anfang ist).
Ich habs schon mit "list().sort(...)" versucht aber es gelang mir nicht.

Hat jemand eine Idee wie ich das machen kann?

lg
microkernel
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Code: Alles auswählen

a = [{"rank" : 3}, {"rank" : 0.4}, {"rank" : 7}, { "rank" : 9}]
a.sort(key=lambda d: d["rank"])
print a
Stefan
Benutzeravatar
microkernel
User
Beiträge: 271
Registriert: Mittwoch 10. Juni 2009, 17:27
Wohnort: Frankfurt
Kontaktdaten:

Vielen dank.
lunar

Oder mit "operator.itemgetter()":

Code: Alles auswählen

from operator import itemgetter
a = [{"rank" : 3}, {"rank" : 0.4}, {"rank" : 7}, { "rank" : 9}]
a.sort(key=itemgetter('rank'))
print a
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Oder so ohne lambda:

Code: Alles auswählen

from operator import itemgetter
a = [{"rank" : 3}, {"rank" : 0.4}, {"rank" : 7}, { "rank" : 9}]
a.sort(key=itemgetter("rank"))
print a
Edit: Mist...
Antworten