【发布时间】:2021-04-14 21:19:04
【问题描述】:
我有一些反应时间作为字母数字字符串(例如“2m34s235”、“23s98”)。我想将这些字符串转换为传统的时间格式(例如'00:02:34.235'、'00:00;23.98')。当字符串包含分钟、秒和毫秒时,我的程序可以很好地完成这项工作。但是,在某些情况下,我的字符串只包含分钟和毫秒数字,但不包含秒(例如“1m567”)。所以,对于这些情况,我的输出不是我想要的。对于这种情况,一个好的输出是 00:01:00,567')。谁能帮我这个?非常感谢!
到目前为止我的代码如下:
list_of_strings= ['6m874','1m767','7m4s123','5s678','3m5s,429','7m45s,346','4m2s,345','23s,98', '1s,962', '5s,337']
new_list = [s.replace("s", "") for s in list_of_strings]
new_l=[s.replace(",", ".") for s in new_list]
tm=[]
for i in new_l:
if 'm' and 's' in i:
c='00:0'+str(i)
c1=c.replace('m',':')
tm.append(c1)
elif 'm' in i:
e=c='00:0'+str(i)
e1=e.replace('m',':00,')
tm.append(e1)
elif float(i) < 10:
a='00:00:0' + str(i)
tm.append(a)
else:
b='00:00:' + str(i)
tm.append(b)
for x in tm:
print(x)
我得到的这个样本的输出是:
00:06:00,874 - 00:01:00,767 - 00:07:00,4123 - 00:00:5678 - 00:03:00,5.429 - 00:07:00,45.346 - 00:04:00,2.345 - 00:00:23.98 - 00:00:01.962 - 00:00:05.337 -
我想要的输出是:
00:06:00.874 - 00:01:00.767 - 00:07:04.123 - 00:00:05.678 - 00:03:05.429 - 00:07:45.346 - 00:04:2.345 - 00:00:23.98 - 00:00:01.962 - 00:00:05.337 -
【问题讨论】:
-
如果你能写到这么多代码,是什么阻止你写更多的代码来覆盖更多的案例?
-
你的代码应该如何知道
1m1是指1分1秒还是1分1毫秒? -
@mkrieger1 我认为秒后总是
s。 -
除非我遗漏了什么,这是一个非常简单的修复。查看您的第二个
replace声明。为什么:00后面有个逗号?将其更改为句点。之后输出对我来说是正确的。可能还有其他 cmets 中提到的其他问题,但这至少解决了手头的问题 -
为什么有些字符串中有逗号?