需求:
items = [
{“id”: 1, “mtbf_time”: “2024-07-11 13:42:24.235000”},
{“id”: 2, “mtbf_time”: “2024-07-12 13:42:24.235000”},
{“id”: 3, “mtbf_time”: “2024-07-13 13:42:24.235000”},
{“id”: 4, “mtbf_time”: “2024-07-14 13:42:24.235000”},
{“id”: 5, “mtbf_time”: “2024-07-15 13:42:24.235000”},
]
获取items中最大的 mtbf_time
,如上数据返回结果:2024-07-15 13:42:24.235000
;
需求比较简单,直接上代码:
第一种方式实现:max
# -- coding:utf-8 --
from datetime import datetime
# 给定的列表
items = [
{"id": 1, "mtbf_time": "2024-07-11 13:42:24.235000"},
{"id": 2, "mtbf_time": "2024-07-12 13:42:24.235000"},
{"id": 3, "mtbf_time": "2024-07-13 13:42:24.235000"},
{"id": 4, "mtbf_time": "2024-07-14 13:42:24.235000"},
{"id": 5, "mtbf_time": "2024-07-15 13:42:24.235000"},
]
# 将字符串转换为datetime对象
items_with_datetime = [
{"id": item["id"], "mtbf_time": datetime.fromisoformat(item["mtbf_time"])}
for item in items
]
# 使用max()函数找出mtbf_time最晚的时间
latest_time = max(items_with_datetime, key=lambda x: x["mtbf_time"])
print(latest_time["mtbf_time"])
在这个示例中,我们使用strptime函数将每个日期时间字符串按照格式"%Y-%m-%d %H:%M:%S.%f"转换为datetime对象。然后,我们再次使用max()函数来找出列表中mtbf_end_time最晚的时间。
第二种for循环方式实现:
from datetime import datetime
# 给定的列表
items = [
{"id":1, "mtbf_end_time": "2024-07-11 13:42:24.235000"},
{"id":2, "mtbf_end_time": "2024-07-12 13:42:24.235000"},
{"id":3, "mtbf_end_time": "2024-07-13 13:42:24.235000"},
{"id":4, "mtbf_end_time": "2024-07-14 13:42:24.235000"},
{"id":5, "mtbf_end_time": "2024-07-15 13:42:24.235000"},
]
# 初始化最大时间为None
max_time = None
# 遍历列表中的每个项目
for item in items:
# 将字符串转换为datetime对象
current_time = datetime.strptime(item["mtbf_end_time"], "%Y-%m-%d %H:%M:%S.%f")
# 如果最大时间还没有设置,或者当前时间大于最大时间,则更新最大时间
if max_time is None or current_time > max_time:
max_time = current_time
# 打印最大时间
print(max_time)
在这个示例中,我们使用for循环遍历列表中的每个项目,并使用strptime函数将每个项目的mtbf_end_time字符串转换为datetime对象。然后,我们使用条件语句来检查当前时间是否大于已知的最大时间。如果是,我们就更新最大时间。最后,打印出最大时间。
结果:
2024-07-15 13:42:24.235000