[英]Python - Find string between variable number of substrings
我有一個字符串,它是[-0.0597212 0.00344087 -0.23413301 0.02406648]
如您所見, [
首先,在第一個和第二個值之間有3個空格,在第二個和第三個值之間有1個空格,在第3個和第4個值之間有2個空格,最后有]
。
我想用符號分解這4個數字值,並將這4個值分配給4個元素的數組。
例如;
a[0]=-0.0597212
a[1]=0.00344087
a[2]=-0.23413301
a[3]=0.02406648
通常會有128個元素帶有這樣的文本(最多3個空格,值之間最小1個空格),但是我想嘗試通過此示例找到解決方案。 我嘗試了split.strip()
和replace()
函數,但沒有找到適合我的解決方案。 你能幫助我嗎 ?
list(map(float, txt[1:-1].split()))
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])
如果您使用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]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.