如何将版本号转换为整数值?

Sur*_*tia 0 python

我试图将应用程序版本号(如5.3.0.1(Android)和5.3.0(iOS))转换为Python中的整数.该函数应该为Android提供输出值5301,为iOS提供530输出值.

我编写了以下代码,但希望使其更小更好:

version = "5.3.0"
num = (version).split('.')

for i in num:
    version += i

print version
Run Code Online (Sandbox Code Playgroud)

建议我一些更好的选择!

Joh*_*ter 9

也许更直接的东西:

major, minor, patch = [int(x, 10) for x in version.split('.')]
Run Code Online (Sandbox Code Playgroud)

以上将为您提供版本号的每个组件.你也可以这样做:

l = [int(x, 10) for x in version.split('.')]
l.reverse()
version = sum(x * (100 ** i) for i, x in enumerate(l))
Run Code Online (Sandbox Code Playgroud)

这将允许版本号的每个组件在0到99之间变化(而不是仅仅0到9).在C中记录版本号是一种相当普遍的做法.

如果您真的只想处理0到9范围内的版本的组件,只需将100更改为10:

l = [int(x, 10) for x in version.split('.')]
l.reverse()
version = sum(x * (10 ** i) for i, x in enumerate(l))
Run Code Online (Sandbox Code Playgroud)

  • 分离组件是**正确**的方法。 (2认同)