我想遍历从文件中读取的每一行,拆分它们,然后将每个拆分的元素转换为 float 以创建一个二维 float 列表。
到目前为止,我有以下代码:
f = open('coordinates.dat')
contents = map(str.strip, f.readlines())
f.close()
对于contents中的每个元素(行),我想做line.split(),然后对于line.split()中的每个元素,将它们转换为 float 。是否可以使用隐式循环来做到这一点?输出看起来像这样:
[[float1, float2, float3], [float4, float5, float6], ... , [floatX, floatY, floatZ]]
(文件每行三个数字)
我尝试了以下方法:
a = [ line for line in contents for float(i) in line.split()]
它给出了语法错误:SyntaxError: can't assign to function call
请您参考如下方法:
重新排列您的尝试会产生正确的代码:
a = [[float(i) for i in line.split()] for line in contents]
