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.