将字符串列表转换为浮点数

时间:2018-10-24 16:06:35

标签: python string list floating-accuracy

我有一个列表列表,每个列表都包含一个字符串。我想将列表中的每个字符串转换为浮点数。我希望列表中不包含多个元素,而不是列表中包含一个元素(字符串)

 [['1,10,300,0.5,85'],
  ['3,16,271,2.9,89'],...

收件人:

[[1,10,300,0.5,85],
 [3,16,271,2.9,89],... 

我该怎么办? 谢谢

2 个答案:

答案 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,否则保持原状

(令我困扰的是内部列表中只有一个元素的原因)