python-3.x - 在 Python 中将表示为“3.5 天”的时间字符串转换为“3.5*24 小时”
问题描述
这是我的数组:
['','','','','2,509','2.58 hrs / 1.20 days','38','7.78
hrs / 1.16 days','1.28','6.62 mins / 6.62 mins']
我想将所有天,分钟转换为小时,我该怎么做?
像 ['','','','','2,509','2.58 hrs / 28.8 hrs','38','7.78 hrs / 27.84 hrs','1.28','0.110 hrs / 0.110 hrs']
解决方案
import re
a = ['','','','','2,509','2.58 hrs / 1.20 days','38','7.78 hrs / 1.16 days','1.28','6.62 mins / 6.62 mins']
def repl(x):
n ={'days':'*24hrs','mins': '/60 hrs'}.get(x.group(2))
n = '' if n is None else n
s = '' if x.group(2) in['mins','days'] else 'hrs'
return x.group(1)+s+n
re.sub(r'(\d\S+)\s([a-z]+)',repl,"\n".join(a)).split('\n')
['',
'',
'',
'',
'2,509',
'2.58hrs / 1.20*24hrs',
'38',
'7.78hrs / 1.16*24hrs',
'1.28',
'6.62/60 hrs / 6.62/60 hrs']
虽然这是您的解决方案的复制品,但是否先除法或先乘法等都没有多大意义。所以我想括号的引入会很棒:
def repl(x):
n ={'days':'*24 hrs','mins': '/60 hrs'}.get(x.group(2))
n = '' if n is None else n
if x.group(2)=='hrs': return x.group(1)+x.group(2) + n
return f'({x.group(1)} {n})'
re.sub(r'(\d\S+)\s([a-z]+)',repl,"\n".join(a)).split('\n')
Out[1211]:
['',
'',
'',
'',
'2,509',
'2.58hrs / (1.20*24 hrs)',
'38',
'7.78hrs / (1.16*24 hrs)',
'1.28',
'(6.62/60 hrs) / (6.62/60 hrs)']
如果您需要解决:
a = ['','','','','2,509','2.58 hrs / 1.20 days','38','7.78 hrs / 1.16 days','1.28','6.62 mins / 6.62 mins']
def repl(x):
n ={'days':'*24','mins': '/60'}.get(x.group(2))
n = '' if n is None else n
s = '' if x.group(2) in['mins','days'] else 'hrs'
return str(round(eval(re.sub('[^0-9.]','',x.group(1))+n),4))+'hrs'
re.sub(r'(\d\S+)\s([a-z]+)',repl,"\n".join(a)).split('\n')
['',
'',
'',
'',
'2,509',
'2.58hrs / 28.8hrs',
'38',
'7.78hrs / 27.84hrs',
'1.28',
'0.1103hrs / 0.1103hrs']
推荐阅读
- security - 我应该使用 JWT 令牌对游戏玩家进行身份验证吗?
- xml - SLD 代码不起作用,但未显示任何错误消息
- python - 为什么 kivy 应用程序中不显示下一个屏幕?
- google-bigquery - 有没有办法在 BigQuery 标准 SQL 中播种随机数生成过程
- github - 我如何自动将我的代码上传到 Github 存储库
- javascript - Redux Action Dispatches 但不映射到状态
- c++ - (C++) for 循环中的空初始语句是否保存所有编译器中变量的先前初始化?
- case - T-SQL Server ORDER BY 日期和空值最后
- kubernetes - 具有多个容器的 Kubernetes 烧瓶应用程序
- laravel - 尝试安装 laravel/ui composer 失败