2016-11-23 177 views

回答

3

看起来像literal_eval.的任务。

from ast import literal_eval 
data = literal_eval('[875.5599999999476,-223155.0180000058,766.8799999999985,1830.867499999997]') 

这会给你的名单[875.5599999999476, -223155.0180000058, 766.8799999999985, 1830.867499999997]

+1

注意'literal_eval'也接受了很多其他数据类型(尽管这可能是好的)。 –

+0

是的,但它并不危险,因为'eval'。 – Matthias

2

JSON有效吗?如果是这样,你可以使用json.loads()。否则:

s = '[875.5599999999476,-223155.0180000058,766.8799999999985,1830.867499999997]' 
lst = [float(item) for item in s[1:-1].split(',') 
1

这是你想要的东西:

l = [875.5599999999476,-223155.0180000058,766.8799999999985,1830.867499999997] 
print (l) 

输出:

[875.5599999999476, -223155.0180000058, 766.8799999999985, 1830.867499999997] 

或列表中分裂的每个项目?

l = [875.5599999999476,-223155.0180000058,766.8799999999985,1830.867499999997] 
for x in l: 
    print(x) 

输出:

875.5599999999476 
-223155.0180000058 
766.8799999999985 
1830.867499999997 
2

可能做的更优雅的方式,但也许是这样的:

x.strip("[").strip("]").split(",") 

编辑:

正如下面的评论指出上面的代码不会将字符串中的数字转换为浮点数。要做到这一点,见下图:

[float(i) for i in x.strip("[").strip("]").split(",")] 
+2

'x [1:-1] .split(',')'? – Mohammad

+0

啊不错的一个!应该有这个想法! – RichSmith

+0

它是否也将该字符串中的数字转换为适当的Python类型? – vaultah

相关问题