Python Converting String Hours Minutes To Minutes
So say I have a list like so: runtimes = ['24 min per ep', '1 hr 55 min', '24 min per ep', '25 min per ep', '23 min per ep', '23 min per ep', '23 min
Solution 1:
This is fairly simple just to code without using any special kind of parser:
defparse_runtime(runtime):
mins = 0
fields = runtime.split()
for idx inrange(0, len(fields)-2):
if fields[idx+1] in ('min', 'mins', 'minutes'):
mins += int(fields[idx])
elif fields[idx+1] in ('hr', 'hrs', 'hours'):
mins += int(fields[idx]) * 60return mins
runtime_mins = []
for runtime in runtimes:
try:
mins = parse_runtime(runtime)
runtime_mins.append(mins)
except ValueError:
print('Bad runtime: ' + runtime)
print(runtime_mins)
Solution 2:
In pure python you can try this:
runtimes_min=[]
for r in runtimes:
r=r.replace('per ep', '')
hour = 0times = r.split('hr')
if len(times) > 1:
hour = times[0]
minutes = times[1].split('min')[0]
else:
minutes=r.split('min')[0].rstrip()
runtimes_min.append(f"{int(hour)*60 + int(minutes)} min per ep")
Output
['24 min per ep',
'115 min per ep',
'24 min per ep',
'25 min per ep',
'23 min per ep',
'23 min per ep',
'23 min per ep',
'27 min per ep',
'24 min per ep',
'23 min per ep',
'24 min per ep',
'22 min per ep',
'25 min per ep',
'24 min per ep',
'23 min per ep',
'24 min per ep',
'24 min per ep',
'24 min per ep',
'24 min per ep',
'101 min per ep',
'87 min per ep',
'25 min per ep',
'82 min per ep',
'30 min per ep',
'25 min per ep',
'91 min per ep',
'124 min per ep',
'24 min per ep',
'24 min per ep']
Post a Comment for "Python Converting String Hours Minutes To Minutes"