将逗号分隔的双精度值转换为列表

时间:2016-11-23 14:44:44

标签: python string list double

外部方法返回以下字符串, [875.5599999999476,-223155.0180000058,766.8799999999985,1830.867499999997]\n

我必须将其转换为列表。

4 个答案:

答案 0 :(得分: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 :(得分:2)

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

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

答案 2 :(得分:2)

可能是一种更优雅的方式,但可能是这样的:

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

编辑:

如下面的评论中所述,上面的代码不会将字符串中的数字转换为浮点数。为此,请参阅以下内容:

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

答案 3 :(得分: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