Version number comparison in Python

后端 未结 17 2100
小蘑菇
小蘑菇 2020-11-27 10:32

I want to write a cmp-like function which compares two version numbers and returns -1, 0, or 1 based on their compared va

17条回答
  •  不知归路
    2020-11-27 11:18

    from distutils.version import StrictVersion
    def version_compare(v1, v2, op=None):
        _map = {
            '<': [-1],
            'lt': [-1],
            '<=': [-1, 0],
            'le': [-1, 0],
            '>': [1],
            'gt': [1],
            '>=': [1, 0],
            'ge': [1, 0],
            '==': [0],
            'eq': [0],
            '!=': [-1, 1],
            'ne': [-1, 1],
            '<>': [-1, 1]
        }
        v1 = StrictVersion(v1)
        v2 = StrictVersion(v2)
        result = cmp(v1, v2)
        if op:
            assert op in _map.keys()
            return result in _map[op]
        return result
    

    Implement for php version_compare, except "=". Because it's ambiguous.

提交回复
热议问题