我们如何转换
['[0.0034596999 0.0034775001 0.0010091923]']
到
[[0.0034596999 0.0034775001 0.0010091923]]
没有引号。我尝试使用eval,list,tuple,replace和s.strip(),但似乎没有任何效果。任何人都可以帮忙吗
答案 0 :(得分:2)
使用RewriteCond %{ENV:REDIRECT_STATUS} !=404
RewriteCond %{THE_REQUEST} ^404$
和replace
:
eval
当然,您只需将其转换为>>> x = ['[0.0034596999 0.0034775001 0.0010091923]']
>>> x = [eval(x[0].replace(' ',','))]
>>> x
[[0.0034596999, 0.0034775001, 0.0010091923]]
数组。
答案 1 :(得分:0)
使用.split()和.replace():
b = ['[0.0034596999 0.0034775001 0.0010091923]']
b = b[0].split(' ')
a = array([[float(x.replace('[','').replace(']','')) for x in b]])
print a
[[ 0.0034597 0.0034775 0.00100919]]
如果你想要一个列表,请不要使用array()。
答案 2 :(得分:0)
eval
失败的原因是因为您认为是字符串的字符串不是有效的列表表示 - 它不包含逗号。
您可以通过取方括号将其转换为真实列表,将剩余字符串拆分为表示数字的单独字符串,并最终将每个字符串转换为数字。这是代码:
data = ['[0.0034596999 0.0034775001 0.0010091923]']
s = data[0]
for ch in "[]": # remove barckets
s = s.replace(ch, '')
# splitting and converting to a list of floats
lst = [float(x) for x in s.split()]
答案 3 :(得分:-2)
lst = ['[0.0034596999 0.0034775001 0.0010091923]']
item = ''.join(lst)
final_str = "[" + item + "]"
print (final_str)