In [38]: r = re.compile(r"PT(\d+)H(\d+)M(\d+)S")
In [39]: %%timeit
....: match = r.search(s)
....: h, m, _ = map(int, match.groups())
....:
100000 loops, best of 3: 3.16 µs per loop
In [40]: timeit t=time.strptime('PT1H28M2S', "PT%HH%MM%SS")
100000 loops, best of 3: 13.3 µs per loop
In [41]: timeit hr, min = map(int,s[2:].rstrip("0123456789S")[:-1].split("H"))
100000 loops, best of 3: 1.96 µs per loop
In [43]: timeit num_mins = int(s[s.find('H')-1]) * 60 + int(s[s.find('H')+1:s.find('M')])
1000000 loops, best of 3: 1.54 µs per loop
可以使用time.strptime函数将字符串转换为日期对象,然后只需使用
tm_hour
和tm_min
方法获得hour
和minute
:用translate去除p、T和M,然后用split提取秒数和分钟数:
如果您可能有个位数的秒数,请将其删除:
一些计时显示查找效率最高,时间最少:
您可以使用regular expression:
相关问题 更多 >
编程相关推荐