python - 如何编写将标签转换为秒的函数?
问题描述
def seconds_to_label_converter(seconds):
hours = divmod(seconds,3600)[0]
minutes = divmod(seconds-(hours*3600),60)[0]
remaining_seconds = seconds-((hours*3600)+(minutes*60))
if remaining_seconds == 0 and hours == 0 and minutes == 0:
time_label = "No info"
elif hours > 1:
time_label = f"{hours} Hours {minutes} Minutes {remaining_seconds} Seconds"
elif hours == 1:
time_label = f"{hours} Hour {minutes} Minutes {remaining_seconds} Seconds"
elif hours == 0 and minutes > 1:
time_label = f"{minutes} Minutes {remaining_seconds} Seconds"
elif hours == 0 and minutes == 1:
time_label = f"{minutes} Minute {remaining_seconds} Seconds"
elif hours == 0 and minutes == 0:
time_label = f"{remaining_seconds} Seconds"
print(time_label)
seconds_to_label_converter(21254)
我有一个像这样的“标签转换器”。现在我需要一个相反的功能。但我不知道该怎么做。
例如:
label_to_seconds_converter("5 Hours 54 Minutes 14 Seconds")
# >>> OUTPUT = 21254
解决方案
尝试这个 :
def label_to_seconds(label):
times = re.findall(r'\b\d+\s*[hours|minutes|seconds]?\b', label.lower())
list_len = len(times)
if list_len == 3:
return int(times[0].strip()) * 3600 + int(times[0].strip()) * 60 + int(times[0].strip())
if list_len == 2:
return int(times[0].strip()) * 60 + int(times[1].strip())
if list_len == 1:
return int(times[0].strip())
else:
print('Invalid Format')
推荐阅读
- mysql - 我想根据我的两个表获得数据透视结果
- hyperledger-fabric - 在 Hyperledger Fabric v1.4 上为所有组织使用 1 个中央证书颁发机构需要什么?
- python - 升级 Python 并破坏了一切
- xml - 无法使用 Google 表格从 Yahoo Finance 导入 XML 自由现金流
- javascript - 如何使用数组删除对象内的对象?(React.js 减速器)
- oauth-2.0 - OpenId Blazor refresh_token
- javascript - 删除重复 ($addToSet) mongoose 聚合后如何对数据求和
- javascript - Javascript (Node.js) - 重构一个长函数
- flutter - 关于“flutter build web”命令的“--web-renderer auto”选项的说明
- c - C99 是否假设支持次正规数?