Versionen korrekt sortieren

13/11/2012 - 21:24 von Philipp Kraus | Report spam
Hallo,

ich habe Versionsnummern von Bibliotheken, also eine Liste in der Form:

a = ["1.8.1", "1.8.10", "1.8.9", "1.8.7"]

Ich müsste die Nummern wie folgt sortiert bekommen
1.8.1 < 1.8.7 < 1.8.9 < 1.8.10
bzw. in meinem Fall müsste 1.8.10 zu beginn stehen. Wie sortiert man
dieses effizient in Python?

Danke

Phil
 

Lesen sie die antworten

#1 Ulrich Eckhardt
13/11/2012 - 21:43 | Warnen spam
Philipp Kraus wrote:
ich habe Versionsnummern von Bibliotheken, also eine Liste in der Form:

a = ["1.8.1", "1.8.10", "1.8.9", "1.8.7"]

Ich müsste die Nummern wie folgt sortiert bekommen
1.8.1 < 1.8.7 < 1.8.9 < 1.8.10
bzw. in meinem Fall müsste 1.8.10 zu beginn stehen. Wie sortiert man
dieses effizient in Python?



Wenn Du die Nummern erst an den Punkten aufspaltest, in Integer umwandelst
und in Tupel umwandelst, kannst Du Python's eingeboute Sortierfunktion
nehmen:

b = [i.split('.') for i in a]
c = [map(int, i) for i in b]
d = [tuple(i) for i in c]
e = sorted(d)

Geht auch in einer Zeile, aber ich dachte mal so ist es uebersichtlicher.
;)

Uli

Ähnliche fragen