版本號排序

2021-10-01 10:22:34 字數 607 閱讀 4486

需求:對 [『4.3.17』, 『4.3.16』, 『4.3.9』…] 排序

分析,版本號雖然都是數字,但是不能按照字元的順序排列,因為公升序的話,『4.3.16』 會排在 『4.3.9』 的前面,但實際上應該排在後面,所以我們需要做乙個轉化,就是將這些數字轉成乙個可以排序的東西,再做排序就沒有問題了。

我這裡是將他們的值換算成了 10 進製的數字,**如下:

keys_list =

['4.3.17'

,'4.3.16'

,'4.3.9'

]large_keys =

dict()

for kl in keys_list:

x, y, z = kl.split(

".")

large_keys[

int(x)*10

**4+int

(y)*

10**2+

int(z)

]= kl

print large_keys

# # 處理完之後就很好排序了

當前的**適合特定的情況,當然要看具體需求,比如版本號中有字母,或者版本號的長度不同等,本文旨在提供一種解決問題的思路!

版本號簡述

版本號簡介 版本號一般分為major 主版本號 minor 次版本號 revision incremental 修正版本號 一般格式為major.minor.revison 如何界定軟體什麼時候該用什麼樣的版本號呢?1 專案初版本時 版本號可以為 0.1 或 0.1.0,也可以為 1.0 或 1.0...

比較版本號

題目 比較兩個版本號 version1 和 version2。如果 version1 version2 返回 1,如果 version1 version2 返回 1,除此之外返回 0。你可以假設版本字串非空,並且只包含數字和 字元。字元不代表小數點,而是用於分隔數字序列。例如,2.5 不是 兩個半 ...

比較版本號

比較兩個版本號 version1 和 version2。如果 version1 version2 返回 1,如果 version1 version2 返回 1,除此之外返回 0。你可以假設版本字串非空,並且只包含數字和 字元。字元不代表小數點,而是用於分隔數字序列。例如,2.5 不是 兩個半 也不是...