python版本号排序

1. 方法一(纯数字或带字母),使用distutils下自带的工具

from distutils.version import LooseVersion
from distutils.version import StrictVersion

 

2. 方法二(纯数字),版本号类似:

['1.0.0', '1.0.2', '1.0.12', '1.1.2', '1.3.3']
import os
import sys

basedir = os.path.abspath(os.path.dirname(__file__))
lib_path = os.path.dirname(os.path.dirname(basedir))
sys.path.append(lib_path)

from demo import logger

if __name__ == '__main__':
    order = sys.argv[1]
    logger.info('Order is [ %s ].' % order)
    version_list = ["1.1.2", "1.0.0", "1.3.3", "1.0.12", "1.0.2"]
    if order == 'asc':
        version_list.sort(key=lambda s: map(int, s.split('.')))
    if order == 'desc':
        version_list.sort(key=lambda s: map(int, s.split('.')), reverse=True)
    logger.info('sort versions is [ %s ].' % version_list)

 

(venv) C:\Users\jalen\demo>python dashboard\test\commontest.py asc
2020-08-11 02:44:33,391 commontest.py:12:INFO:Order is [ asc ].
2020-08-11 02:44:33,392 commontest.py:18:INFO:sort versions is [ ['1.0.0', '1.0.2', '1.0.12', '1.1.2', '1.3.3'] ].

参考:https://www.cnpython.com/qa/47151

 

3. 方法三(纯数字),利用python元组的比较

if __name__ == '__main__':
    v1 = ['40.1', '40.3', '40.9', '40.11', '40.10', '40.2']
    v1.sort(key=lambda x: tuple(int(v) for v in x.split(".")), reverse=True)
    print(v1)

    version = ['2.0.1', '1.0.2', '1.0.21', '2.2.9', '1.2.11']
    version.sort(key=lambda x: tuple(int(v) for v in x.split(".")), reverse=True)
    print(version)
    print('end!')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值