Seite 1 von 1
Indizes sortierter Liste angeben
Verfasst: Samstag 18. März 2017, 16:26
von aleph
Ich habe eine Liste mit Gleitkommazahlen. Jetzt würde ich gerne jedes Listenelement x durch das Tupel (Index von x, x) ersetzen und diese neue Liste nach dem zweiten Eintrag jedes Tupels sortieren.
Wie mache ich sowas?
Re: Indizes sortierter Liste angeben
Verfasst: Samstag 18. März 2017, 16:37
von Sirius3
Tupel mit Index erhältst Du mit »enumerate« und sortieren nach dem zweiten Element geht mit dem key-Argument von »sorted«.
Re: Indizes sortierter Liste angeben
Verfasst: Samstag 18. März 2017, 16:46
von aleph
Danke!
Code: Alles auswählen
liste = [0.5, 0.1, 0.3]
liste_mit_indizes = [(index, element) for index, element in enumerate(liste)]
sortierte_liste_mit_indizes = sorted(liste_mit_indizes, key=lambda item: item[1])
print(sortierte_liste_mit_indizes)
Re: Indizes sortierter Liste angeben
Verfasst: Samstag 18. März 2017, 17:00
von Sirius3
@aleph: eigentlich kürzer:
Code: Alles auswählen
liste = [0.5, 0.1, 0.3]
sortierte_liste_mit_indizes = sorted(enumerate(liste), key=lambda item: item[1])
print(sortierte_liste_mit_indizes)
Re: Indizes sortierter Liste angeben
Verfasst: Samstag 18. März 2017, 17:12
von aleph
OK, danke.
Re: Indizes sortierter Liste angeben
Verfasst: Samstag 18. März 2017, 18:39
von snafu
In welchem Zusammenhang wird das benötigt? Möglicherweise ist numpy.argsort() hier geeigneter.