从输入文件创建列表列表

时间:2014-04-10 22:56:07

标签: python list

我有一个输入文件,每行有多个值,例如:

1  3  5

2  6  1

8  9  2

我想将这些数字导入列表列表,以便每行都是列表列表中的列表:

data= [[1 3 5], [2 6 1], [8 9 2]]等。

有一种简单的方法吗?我查看了readlinereadlineslines,但仍不确定如何创建此格式。最后,我想在每个列表上执行相同的操作集,因此这种格式似乎是最明智的。

2 个答案:

答案 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])