You need to enable JavaScript to run this app. Python如何从交替存储时间与版本的列表中提取最新时间对应版本号
优惠活动
大模型
产品
解决方案
定价
更多

Python如何从交替存储时间与版本的列表中提取最新时间对应版本号

实现代码及说明

完整可运行示例

from datetime import datetime

# 测试用的输入列表
output = [
    '2020-09-24 14:58:24.273000+00:00', 'v1.0.0-rc.2',
    '2019-09-24 14:58:24.273000+00:00', 'v1.3'
]

# 校验列表结构合法性
if len(output) % 2 != 0:
    raise ValueError("列表长度为奇数,不符合时间与版本号交替成对存储的规则")

# 配对时间与版本,取最新时间对应的版本
latest_version = max(
    zip(output[::2], output[1::2]),
    key=lambda item: datetime.fromisoformat(item[0])
)[1]

print(latest_version)

运行以上代码输出结果为:v1.0.0-rc.2,和需求预期一致。

逻辑说明

  • 利用列表切片按步长取值:output[::2]提取所有UTC时间字符串,output[1::2]提取所有对应版本号
  • 通过zip()将两组切片拼接为(时间字符串, 版本号)的元组对,保证时间和版本对应关系正确
  • 用max()函数比较元组的时间维度,比较时将时间字符串转换为带时区的datetime对象,避免字符串直接比较可能出现的格式兼容问题
  • 最终取最大时间元组的第二个元素,即为最新时间对应的版本号

低版本Python兼容方案

如果使用Python3.7以下版本,datetime.fromisoformat方法不可用,可替换为指定格式解析的写法:

latest_version = max(
    zip(output[::2], output[1::2]),
    key=lambda item: datetime.strptime(item[0], "%Y-%m-%d %H:%M:%S.%f%z")
)[1]

内容的提问来源于stack exchange,提问作者ajay.kumar.awscloud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 07:06:02