Seite 1 von 1

Liste von dicts nach bestimmten Argument sortieren

Verfasst: Sonntag 15. November 2009, 11:56
von microkernel
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

Verfasst: Sonntag 15. November 2009, 12:19
von sma

Code: Alles auswählen

a = [{"rank" : 3}, {"rank" : 0.4}, {"rank" : 7}, { "rank" : 9}]
a.sort(key=lambda d: d["rank"])
print a
Stefan

Verfasst: Sonntag 15. November 2009, 12:26
von microkernel
Vielen dank.

Verfasst: Sonntag 15. November 2009, 12:44
von 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

Verfasst: Sonntag 15. November 2009, 12:46
von ms4py
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...