Sortowanie wersji w Pythonie.
Niech
g będzie listą stringów wyglądających jak nr wersji jakiegoś pakietu:
g = ["1.1", "1.2", "1.10", "1.6", "1.65", "1.59", "1.23"]
Jak wykorzystując pythona posortować tę listę tak aby otrzymać wersje chronologicznie?
['1.1', '1.2', '1.6', '1.10', '1.23', '1.59', '1.65']
Wykorzystujemy do tego moduł
distutils.version:
In [1]: from distutils.version import StrictVersion
In [2]: g = ["1.1", "1.2", "1.10", "1.6", "1.65", "1.59", "1.23"]
In [3]: f = [StrictVersion(x) for x in g]
In [4]: sorted(f)
Out[4]:
[StrictVersion ('1.1'),
StrictVersion ('1.2'),
StrictVersion ('1.6'),
StrictVersion ('1.10'),
StrictVersion ('1.23'),
StrictVersion ('1.59'),
StrictVersion ('1.65')]
In [5]: [str(x) for x in sorted(f)]
Out[5]: ['1.1', '1.2', '1.6', '1.10', '1.23', '1.59', '1.65']
Szczególne podziękowania dla
Restless Being za zwrócenie uwagii na bibliotekę. :)