我有一个输入文件,每行有多个值,例如:
1 3 5
2 6 1
8 9 2
我想将这些数字导入列表列表,以便每行都是列表列表中的列表:
data= [[1 3 5], [2 6 1], [8 9 2]]
等。
有一种简单的方法吗?我查看了readline
,readlines
,lines
,但仍不确定如何创建此格式。最后,我想在每个列表上执行相同的操作集,因此这种格式似乎是最明智的。
答案 0 :(得分:1)
我愿意:
data = [map(int, line.split()) for line in fname if line.strip()]
答案 1 :(得分:0)
如果您的数据看起来与您呈现的方式相同,请尝试以下内容:
data = []
with open('filename.txt', 'r') as f:
for line in f:
if not line.strip(): continue #skips blank lines
data.append(map(int, line.strip().split(" "))) #or .split()
此外,如果您要对每一行执行相同的数值运算,您可能需要尝试numpy
。
In [1]: import numpy as np
In [2]: np.genfromtxt('filename.txt')
Out[2]:
array([[ 1., 3., 5.],
[ 2., 6., 1.],
[ 8., 9., 2.]])
In [3]: x = np.genfromtxt('filename.txt')
In [4]: x.mean(axis=1)
Out[4]: array([ 3., 3., 6.333333333333333])