将以下字符串拆分为6个浮点值的最佳方法是什么。小数点总是六位。
x=' 2C 6s 0.043315-143.954801 17.872676 31.277358-18.149649114.553363'
输出应为:
y=[0.043315, -143.954801, 17.872676, 31.277358, 18.149649, 114.553363]
答案 0 :(得分:4)
假设您希望获得-18.149649
而不是18.149649
,因为这样会保持一致,我建议将regex与.findall()
function结合使用,如下所示:
import re
regex = '(-?[0-9]{1,}\.[0-9]{6})'
x = ' 2C 6s 0.043315-143.954801 17.872676 31.277358-18.149649114.553363'
out = re.findall(regex, x)
print(out)
,并提供:
['0.043315', '-143.954801', '17.872676', '31.277358', '-18.149649', '114.553363']
由于评论而更新:
您可以将[0-9]
替换为与\d
相同的\d
,因为INSERT into MESSAGES(from_user,to_user,time_sent,message) values('aaa','bbb',10.02.2016, 10:59,' ccc ')
与数字(数字)匹配,如here所示。
答案 1 :(得分:2)
这应该可以解决问题。
re.findall(r'\-?[0-9]+\.[0-9]{6}', string)