def ver_cmp(v1, v2): lst = map(lambda x, y: ((0 if not x else x), (0 if not y else y)), v1.split('.'), v2.split('.')) for num1, num2 in lst: if num1 != num2: if num1 > num2: return (1, 'greater') else: return (2, 'less') return (0, 'equal') # Example: # # >>> print ver_cmp('1.6.2', '1.6') # >>> (1, 'greater')