繁体   English   中英

如何仅使用 python 将以小时 + 分钟为单位的时间转换为分钟

[英]How to convert time written in hours + minutes to minutes only with python

我提取一个包含电影时间的字符串

2小时28分钟

我想将时间转换为分钟 (2*60+28)

这是我的方法,但我正在寻找一种更简单的方法

ar = time.split()
def split(word):
  return [char for char in word]
if 'h' in ar[0]:
  word = ar[0]
  sp = split(word)
  hours = int(sp[0]) * 60
  mins = re.findall(r'\d+', ar[1])
  time = hours + int(mins[0])
else:
  mins = re.findall(r'\d+', ar[0])
  time = int(mins[0])

如果您有预先确定的格式,那么 codotron 的答案就可以了。 但是,对于 Codtron 的回答,小时必须是一位数,分钟必须是 2,并且小时和分钟之间必须有空格。 但是,如果输入可以是2hr28min2h 28min 28min 或2 hours and 28 minutes ,甚至是123 hours 1 minute ,那么我们需要解析一些标记来提取这两个数字。

为此,我们可以使用正则表达式:

import re
s = input("Time: ")
hm = re.findall("\d+", s) #returns list containing ['hr', 'min']
hm = [int(x) for x in hm]
print(hm[0]*60+hm[1])

Output

>>>Time: 3 hours 40 minutes
>>>220
>>>
>>>Time: 2hr5min
>>>125
>>>
>>>Time: 2h5
>>>125

如果它是你所说的字符串,那么你可以做这样的事情

s = '2h 28min'
s = s.split()
a=int(s[0][:len(s[0])-1])
b=int(s[1][:len(s[1])-3])
time = (a*60)+b
ans = str(time)+'min'

Output

>>> 148min

编辑:代码错误

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM