Sortieren von Arrays

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
pasithee
User
Beiträge: 2
Registriert: Samstag 9. April 2011, 12:57

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
Benutzeravatar
martin101986
User
Beiträge: 85
Registriert: Montag 3. Dezember 2007, 19:15
Wohnort: Steiermark, Österreich

Hallo,

mit

Code: Alles auswählen

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

Grüße
Martin
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Code: Alles auswählen

sorted(result, key=itemgetter('count'))
tut es auch.
pasithee
User
Beiträge: 2
Registriert: Samstag 9. April 2011, 12:57

Das ging ja schnell.

Beide Varianten funktionieren.

Vielen Dank euch zwei.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Ist es ohne spezielle Funktionen nicht noch kürzer?

Code: Alles auswählen

sorted(result, key=lambda x:x['count'])
Stefan
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

@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 ;)
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.
Antworten