我有一个字符串
[-0.0597212 0.00344087 -0.23413301 0.02406648]
如您所见,首先有[
,第一个和第二个值之间有3个空格,第二个和第3个值之间有1个空格,第3个和第4个值之间有2个空格,并且有{{1} }。
我想用符号分解这4个数值,并将这4个值赋给一个4元素数组。
例如;
]
通常会有128个这样的文本元素(值之间最多3个空格,值之间最少1个空格),但是我想尝试通过此示例找到解决方案。我尝试了a[0]=-0.0597212
a[1]=0.00344087
a[2]=-0.23413301
a[3]=0.02406648
和split.strip()
函数,但没有找到适合我的解决方案。你能帮我吗?
答案 0 :(得分:2)
list(map(float, txt[1:-1].split()))
答案 1 :(得分:2)
a="[-0.0597212 0.00344087 -0.23413301 0.02406648]"
#split string
a = a.split()
#delete open & close square bracket
a[0] = a[0][1:]
a[-1] = a[-1][:-1]
#convert to float
for i in range(len(a)):
a[i] = float(a[i])
答案 2 :(得分:1)
如果您使用numpy()
:
import numpy as np
s = '[-0.0597212 0.00344087 -0.23413301 0.02406648]'
np.fromstring(s.strip('[]'), dtype=float, sep=' ')
# [-0.0597212 0.00344087 -0.23413301 0.02406648]
您也可以使用ast.literal_eval
:
import ast
import re
ast.literal_eval(re.sub(r'\s+', ',', s))
# [-0.0597212, 0.00344087, -0.23413301, 0.02406648]