Python将字符串转换为列表

时间:2016-08-06 18:22:45

标签: python

我们如何转换

['[0.0034596999 0.0034775001 0.0010091923]']


[[0.0034596999 0.0034775001 0.0010091923]]

没有引号。我尝试使用eval,list,tuple,replace和s.strip(),但似乎没有任何效果。任何人都可以帮忙吗

4 个答案:

答案 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)