我想写一个cmp样功能,比较两个版本号,并返回-1,0或1根据自己的比较valuses.
-1如果版本A早于版本B,则返回0如果版本A和B是等价的1如果版本A比版本B更新,则返回每个子部分应该被解释为一个数字,因此1.10> 1.1.
期望的功能输出是
mycmp('1.0', '1') == 0
mycmp('1.0.0', '1') == 0
mycmp('1', '1.0.0.1') == -1
mycmp('12.10', '11.0.0.0.0') == 1
...
Run Code Online (Sandbox Code Playgroud)
这是我的实施,开放改进:
def mycmp(version1, version2):
parts1 = [int(x) for x in version1.split('.')]
parts2 = [int(x) for x in version2.split('.')]
# fill up the shorter version with zeros ...
lendiff = len(parts1) - len(parts2)
if lendiff > 0:
parts2.extend([0] * lendiff)
elif lendiff < 0:
parts1.extend([0] …Run Code Online (Sandbox Code Playgroud)