我有一个列表列表,每个列表都包含一个字符串。我想将列表中的每个字符串转换为浮点数。我希望列表中不包含多个元素,而不是列表中包含一个元素(字符串)
[['1,10,300,0.5,85'],
['3,16,271,2.9,89'],...
收件人:
[[1,10,300,0.5,85],
[3,16,271,2.9,89],...
我该怎么办? 谢谢
答案 0 :(得分:6)
x = [['1,10,300,0.5,85'], ['3,16,271,2.9,89']]
y = [[float(v) for v in r[0].split(',')] for r in x]
y
将
[[1.0, 10.0, 300.0, 0.5, 85.0], [3.0, 16.0, 271.0, 2.9, 89.0]]
答案 1 :(得分:3)
使用python评估的解决方案:
import ast
result = [list(ast.literal_eval(x[0])) for x in [['1,10,300,0.5,85'], ['3,16,271,2.9,89']]]
>>> result
[[1, 10, 300, 0.5, 85], [3, 16, 271, 2.9, 89]]
ast.literal_eval
将产生tuple
,因为引用的数据没有括号,因此如果需要,请转换为list
,否则保持原状
(令我困扰的是内部列表中只有一个元素的原因)