将字符串列表的列表转换为浮点数
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
,否则保持原样
(但令我困扰的是为什么内部列表只有一个元素)
我有一个列表列表,每个列表都包含一个字符串。我想将列表中的每个字符串转换为浮点数。我希望我的列表包含多个浮点数
,而不是列表中有一个元素(字符串) [['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
,否则保持原样
(但令我困扰的是为什么内部列表只有一个元素)