[Python-de] Versionen korrekt sortieren
Philipp Kraus
philipp.kraus at flashpixx.de
Di Nov 13 23:17:52 CET 2012
On 2012-11-13 21:43:36 +0100, Ulrich Eckhardt said:
> 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:
Gut, also etwas "fertiges" dafür verwenden geht nicht?
> b = [i.split('.') for i in a]
> c = [map(int, i) for i in b]
sehe ich das richtig, dass das hier das Splitting & Umwandlung in ints macht?
> d = [tuple(i) for i in c]
> e = sorted(d)
Was macht "tupel" hier im Detail? in i steht ja, wenn ich das richtig
sehe, so etwas
[1, 8, 1] bzw [1, 8, 10]
Danke das hilft definitiv weiter
Mehr Informationen über die Mailingliste python-de