版本号比较

时间:2017-07-21 07:12:32

标签: python

我想在我的代码中比较Android版本号。如果任何版本低于4.1,我想要该版本号。

我应该直接在字符串上使用比较吗?

示例:

"4.0.3" < "4.1" # should return.
"5.0" < "4.1"  # should not return.

2 个答案:

答案 0 :(得分:0)

试试这个

def compare_versions_greater_than(v1, v2):
    for i, j in zip(map(int, v1.split(".")), map(int, v2.split("."))):
        if i == j:
            continue
        return i > j
    return len(v1.split(".")) > len(v2.split("."))

a = "2.0.3"
b = "2.1"
print(compare_versions_greater_than(a, b))
print(compare_versions_greater_than(b, a))

输出

False
True

答案 1 :(得分:-2)

您可以将版本字符串转换为float。然后比较它们。

def version2float(version):
    main, *tail = version.split('.')
    temp = ''.join(tail)
    return float('.'.join([main, temp]))