私のコードでアンドロイドバージョン番号を比較しようとしています。いずれかのバージョンが4.1より小さい場合は、そのバージョン番号が必要です。バージョン番号の比較
以下のように文字列の比較を直接行う必要がありますか?
例:
"4.0.3" < "4.1" # should return.
"5.0" < "4.1" # should not return.
私のコードでアンドロイドバージョン番号を比較しようとしています。いずれかのバージョンが4.1より小さい場合は、そのバージョン番号が必要です。バージョン番号の比較
以下のように文字列の比較を直接行う必要がありますか?
例:
"4.0.3" < "4.1" # should return.
"5.0" < "4.1" # should not return.
あなたは直接Pythonでこの文字列を比較することができ、この
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
あなたが浮かぶようにバージョン文字列を変換することができます。そしてそれらを比較する。
def version2float(version):
main, *tail = version.split('.')
temp = ''.join(tail)
return float('.'.join([main, temp]))
私はdownvoteあなたのコメントを残す人にしたい。 – stamaimer
を試してみてください、それはあなたに期待される結果が得られます。 –
**あなたは**しないでください。 '10.2 <4.1'は' True'を返します。文字列の比較は、一度に1文字ずつ行われます。上記の例では、 '' 1''は '' 4''と比較され、失われます。 –
このトピックを見てください:https://stackoverflow.com/questions/11887762/compare-version-strings-in-python – CrazyElf