Python 按40m等分次列进行汇总;1d 2h 20m;3小时10米

Python 按40m等分次列进行汇总;1d 2h 20m;3小时10米,python,time,format,Python,Time,Format,我有一列以下格式的时间日志: 40m 1d 2h 20m 1h 10m 10m 2h 50m 如何在Python中总结这些内容并在几秒钟内得到答案?创建一个字典以在几秒钟内存储m,h,d的值 m = {'m':60, 'd': 24*60*60, 'h': 60*60} st="1d 2h 20m" sum(int(i[:-1])*m[i[-1]] for i in st.split()) 如果允许您使用外部模块,我建议尝试。用法示例: import pytimepa

我有一列以下格式的时间日志:

40m
1d 2h 20m
1h 10m
10m
2h 50m

如何在Python中总结这些内容并在几秒钟内得到答案?

创建一个字典以在几秒钟内存储
m,h,d
的值

m = {'m':60, 'd': 24*60*60, 'h': 60*60}

st="1d 2h 20m"
sum(int(i[:-1])*m[i[-1]] for i in st.split())


如果允许您使用外部模块,我建议尝试。用法示例:

import pytimeparse
s1 = "40m"
s2 = "1d 2h 20m"
s3 = "1h 10m"
t1 = pytimeparse.parse(s1)
t2 = pytimeparse.parse(s2)
t3 = pytimeparse.parse(s3)
total = t1+t2+t3
print(total)
输出:

101400

说明:
pytimeparse.parse
将表示
str
的时间转换为秒数。由于它是外部模块,您需要首先安装它:在这种情况下,只需执行
pip install pytimeparse

(1)将每一行解析为秒数(2)添加它们您是否尝试过使用代码执行任何操作?我首先编写一个函数,该函数可以以
40m
的形式处理一个字符串。拆分字符串并应用函数。欢迎使用堆栈溢出!请拿起,阅读,和,并提供一个。“为我实现此功能”是本网站的主题。你必须做一个诚实的尝试,然后就你的算法或技术提出一个具体的问题。@toRex我只是想在脑子里想出一个基本的解决方案。意识到太晚了,我希望包括一些代码。我的缺点:(你可以为每一行计算它,然后求和得到最终结果。我甚至没有想到使用字典的ICE解决方案。感谢这个很酷的解决方案!使用模块很好,所以我会将其标记为可接受的答案,因为这是最简单的。
101400