Sortieren von Listen nach dem Alphabet

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
akhof
User
Beiträge: 104
Registriert: Mittwoch 11. Mai 2011, 19:07
Kontaktdaten:

Hallo!

Ich habe eine Liste, die wiederum einige Listen enthällt. Diese haben zwei Werte (siehe unten); eine ID, und einen Namen. Ich möchte nun das ganze so sortieren:

Das habe ich:

Code: Alles auswählen

[(1, u'Bella'), (2, u'Lukas'), (3, u'Arne'), (4, u'Marc')]
So solls aussehen:

Code: Alles auswählen

[(3, u'Arne'),(1, u'Bella'),(2, u'Lukas'),(4, u'Marc')]
Wie mache ich das am Besten?

Lieben Dank schonmal im Vorraus!
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Code: Alles auswählen

>>> sorted([(1, u'Bella'), (2, u'Lukas'), (3, u'Arne'), (4, u'Marc')], key=lambda x: x[1])
[(3, u'Arne'), (1, u'Bella'), (2, u'Lukas'), (4, u'Marc')]
>>> from operator import itemgetter
>>> sorted([(1, u'Bella'), (2, u'Lukas'), (3, u'Arne'), (4, u'Marc')], key=itemgetter(1))
[(3, u'Arne'), (1, u'Bella'), (2, u'Lukas'), (4, u'Marc')]
Beide Versionen tun das gleiche, ich halte die zweite fuer lesbarer und bevorzuge sie daher auch.
Zuletzt geändert von derdon am Samstag 13. Oktober 2012, 13:17, insgesamt 1-mal geändert.
Benutzeravatar
sparrow
User
Beiträge: 4193
Registriert: Freitag 17. April 2009, 10:28

Das Python-Wiki behandelt genau das:

http://wiki.python.org/moin/HowTo/Sorting/

Unter "Key Functions".
Übrigens der erste Treffer unter "python sort" bei google....
akhof
User
Beiträge: 104
Registriert: Mittwoch 11. Mai 2011, 19:07
Kontaktdaten:

Danke euch beiden! :D
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Alternativ kannst du auch `itemgetter` aus dem operator-modul verwenden.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

jbs hat geschrieben:Alternativ kannst du auch `itemgetter` aus dem operator-modul verwenden.
Hat derdon doch auch als zweiten (besseren) Vorschlag gebracht. Ich hätts aber auch fast übersehen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten