首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python版本号排序

python版本号排序

作者头像
云未归来
发布2025-07-22 12:06:01
发布2025-07-22 12:06:01
28500
代码可运行
举报
运行总次数:0
代码可运行

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)

代码语言:javascript
代码运行次数:0
运行
复制
(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'] ].

参考:排序一个以点分隔的数字列表,比如软件版本。 - 问答 - Python中文网

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

代码语言:javascript
代码运行次数:0
运行
复制
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!')
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-10-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档