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

Convert list of lists of string into floats

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

,而不是列表中有一个元素(字符串)
 [['1,10,300,0.5,85'],
  ['3,16,271,2.9,89'],...

收件人:

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

我该怎么做? 谢谢

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]]

使用 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,否则保持原样

(但令我困扰的是为什么内部列表只有一个元素)