Seite 1 von 1
Sortieren von Listen nach dem Alphabet
Verfasst: Samstag 13. Oktober 2012, 13:07
von akhof
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!
Re: Sortieren von Listen nach dem Alphabet
Verfasst: Samstag 13. Oktober 2012, 13:16
von derdon
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.
Re: Sortieren von Listen nach dem Alphabet
Verfasst: Samstag 13. Oktober 2012, 13:17
von sparrow
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....
Re: Sortieren von Listen nach dem Alphabet
Verfasst: Samstag 13. Oktober 2012, 13:23
von akhof
Danke euch beiden!

Re: Sortieren von Listen nach dem Alphabet
Verfasst: Samstag 13. Oktober 2012, 18:32
von jbs
Alternativ kannst du auch `itemgetter` aus dem operator-modul verwenden.
Re: Sortieren von Listen nach dem Alphabet
Verfasst: Samstag 13. Oktober 2012, 19:40
von Leonidas
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.