gpt4 book ai didi

python - 在 python 中将时间字符串 XhYmZs 转换为秒

转载 作者:行者123 更新时间:2023-12-05 09:19:16 25 4
gpt4 key购买 nike

我有一个字符串,它有三种形式:

XhYmZs or YmZs or Zs

其中,h、m、s 代表小时、分钟、秒,X、Y、Z 是相应的值。

如何在 python2.7 中高效地将这些字符串转换为秒数?

我想我可以这样做:

s="XhYmZs"
if "h" in s:
hours=s.split("h")
elif "m" in s:
mins=s.split("m")[0][-1]

...但这对我来说似乎不是很有效:(

最佳答案

拆分您感兴趣的分隔符,然后将每个结果元素解析为一个整数并根据需要相乘:

import re
def hms(s):
l = list(map(int, re.split('[hms]', s)[:-1]))
if len(l) == 3:
return l[0]*3600 + l[1]*60 + l[2]
elif len(l) == 2:
return l[0]*60 + l[1]
else:
return l[0]

这会产生标准化为秒的持续时间。

>>> hms('3h4m5s')
11045
>>> 3*3600+4*60+5
11045
>>> hms('70m5s')
4205
>>> 70*60+5
4205
>>> hms('300s')
300

您还可以通过将 re.split() 结果翻转并乘以 60 的递增幂(基于列表中元素的位置)来生成这一行:

def hms2(s):
return sum(int(x)*60**i for i,x in enumerate(re.split('[hms]', s)[-2::-1]))

关于python - 在 python 中将时间字符串 XhYmZs 转换为秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41391995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com