Seite 1 von 1

Sortieren von Arrays

Verfasst: Samstag 9. April 2011, 13:01
von pasithee
Hi zusammen

Habe folgendes Array

Code: Alles auswählen

self.result = [
  {'count': '4', 'key': 'test 4'}
  {'count': '2', 'key': 'test 2'},
  {'count': '1', 'key': 'test 1'},
  {'count': '3', 'key': 'test 3'},
]
und möchte es nach 'count' sortiert haben. Also

Code: Alles auswählen

self.result = [
  {'count': '1', 'key': 'test 1'},
  {'count': '2', 'key': 'test 2'},
  {'count': '3', 'key': 'test 3'},
  {'count': '4', 'key': 'test 4'}
]
Wie funktioniert das mit Python. Habe bereits mit dem sort, itemgetter herumgespielt, doch kriege es nicht auf die Reihe.

Vielen Dank für eure Hilfe
Pasithee

Re: Sortieren von Arrays

Verfasst: Samstag 9. April 2011, 13:13
von martin101986
Hallo,

mit

Code: Alles auswählen

 sorted(result, key=lambda x: itemgetter('count')(x))
sollte es funktionieren.

Grüße
Martin

Re: Sortieren von Arrays

Verfasst: Samstag 9. April 2011, 13:15
von DasIch

Code: Alles auswählen

sorted(result, key=itemgetter('count'))
tut es auch.

Re: Sortieren von Arrays

Verfasst: Samstag 9. April 2011, 13:18
von pasithee
Das ging ja schnell.

Beide Varianten funktionieren.

Vielen Dank euch zwei.

Re: Sortieren von Arrays

Verfasst: Sonntag 10. April 2011, 08:52
von sma
Ist es ohne spezielle Funktionen nicht noch kürzer?

Code: Alles auswählen

sorted(result, key=lambda x:x['count'])
Stefan

Re: Sortieren von Arrays

Verfasst: Sonntag 10. April 2011, 10:06
von snafu
@sma:

Ja, es ist kürzer, wenn man die Zeichen für den Import mitzählt. ;)

Trotzdem ist es ja nicht unbedingt verkehrt, die Funktionalität zu empfehlen, welche dem Anwender bereits durch die Standardbibliothek angeboten wird. Gut, jetzt in diesem Fall kann man eigentlich nichts falsch machen, so dass es letztlich auf eine reine Geschmacksfrage hinauslaufen dürfte, ob man den Import machen möchte oder eine anonyme Funktion nutzen will. Aber Halt, vielleicht ist der itemgetter ja um 3ms performanter. :o ;)

Re: Sortieren von Arrays

Verfasst: Sonntag 10. April 2011, 18:57
von lunar
@sma: Kürzer schon, allerdings finde Ich "itemgetter()" verständlicher. Der Name spricht für sich, zudem ist die Funktion aus der Standardbibliothek bekannt.