3 回答

TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊
拆分每個(gè)版本字符串,以將其作為整數(shù)列表進(jìn)行比較:
versions_list.sort(key=lambda s: map(int, s.split('.')))
給出,作為您的清單:
['1.0.0', '1.0.2', '1.0.12', '1.1.2', '1.3.3']
在Python3中map不再返回a list,因此我們需要將其包裝在list調(diào)用中。
versions_list.sort(key=lambda s: list(map(int, s.split('.'))))
映射的替代方法是列表理解。
versions_list.sort(key=lambda s: [int(u) for u in s.split('.')])

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超2個(gè)贊
natsort提出“自然排序”;wich非常直觀(在Python 3中)
from natsort import natsorted
versions = ["1.1.2", "1.0.0", "1.3.3", "1.0.12", "1.0.2"]
natsorted(versions)
給
['1.0.0', '1.0.2', '1.0.12', '1.1.2', '1.3.3']
但在帶有版本號(hào)的完整軟件包名稱上也可以正常使用:
versions = ['version-1.9', 'version-2.0', 'version-1.11', 'version-1.10']
natsorted(versions)
給
['version-1.9', 'version-1.10', 'version-1.11', 'version-2.0']
添加回答
舉報(bào)