【发布时间】:2018-05-25 10:43:48
【问题描述】:
我有这个字符串
'[334.0, 223.0, 41.0, 819.0]'
我需要在这个数组中转换它:
[334.0, 223.0, 41.0, 819.0]
有什么想法吗? 谢谢
【问题讨论】:
我有这个字符串
'[334.0, 223.0, 41.0, 819.0]'
我需要在这个数组中转换它:
[334.0, 223.0, 41.0, 819.0]
有什么想法吗? 谢谢
【问题讨论】:
使用 ast 模块。
例如:
import ast
print(ast.literal_eval('[334.0, 223.0, 41.0, 819.0]'))
输出:
[334.0, 223.0, 41.0, 819.0]
【讨论】:
没有额外导入的简单单行:
a = '[334.0, 223.0, 41.0, 819.0]'
b = [ float(i) for i in a[1:-1].split(',') ]
print b
输出:
[334.0, 223.0, 41.0, 819.0]
【讨论】:
float(223) 将产生输出223.0。 (看来评论者删除了评论。这是为了回应:如果我们在a中有一个整数值怎么办)。
eval 呢?
这将评估一个字符串,就好像它是一个 python 代码。
例如:
string='[334.0, 223.0, 41.0, 819.0]'
a = eval(string)
print(a[0])
输出:
334.0
【讨论】:
ast.literal_eval 对对象的行为类似于 eval,它是安全的