Python:如何在不改变结构的情况下将与整数和特殊字符组合的字符串中的整数转换为浮点数?



如果我有一个字符串,如:'2 5 3 $ # 2 ^ 1 4 !'如何将其格式化为:'2.0 5.0 3.0 $ # 2.0 ^ 1.0 4.0 !'

做这件事的最佳方式是什么?

拆分字符串,检查每个部分是否为数字-如果是,则将其转换为浮动

in_string = '2 5 3 $ # 2 ^ 1 4 !'
out_string = ' '.join(str(float(x)) if x.isnumeric() else x for x in in_string.split())
print(out_string)

输出:

2.0 5.0 3.0 $ # 2.0 ^ 1.0 4.0 !

一种方法可以是使用re.sub并反向引用匹配项:

import re
s = '2 5 3 $ # 2 ^ 1 4 !'
re.sub(r'(d)', r'1.0', s)
# '2.0 5.0 3.0 $ # 2.0 ^ 1.0 4.0 !'

最新更新