Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从输入文件创建列表列表_Python_List - Fatal编程技术网

Python 从输入文件创建列表列表

Python 从输入文件创建列表列表,python,list,Python,List,我有一个每行有多个值的输入文件,例如: 1 3 5 2 6 1 8 9 2 我想将这些数字导入列表列表,以便每一行都是列表列表中的一个列表: data=[[1 3 5]、[2 6 1]、[8 9 2]]etc 有没有一个简单的方法可以做到这一点?我已经看过了readline,readlines,lines,但仍然不确定如何创建这种格式。最后,我希望对每个列表执行相同的操作集,因此这种格式似乎是最合理的 如果您的数据看起来与您呈现的数据完全一样,请尝试以下操作: data = [

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

1  3  5

2  6  1

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

data=[[1 3 5]、[2 6 1]、[8 9 2]]
etc


有没有一个简单的方法可以做到这一点?我已经看过了
readline
readlines
lines
,但仍然不确定如何创建这种格式。最后,我希望对每个列表执行相同的操作集,因此这种格式似乎是最合理的

如果您的数据看起来与您呈现的数据完全一样,请尝试以下操作:

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])
我会:

data = [map(int, line.split()) for line in fname if line.strip()]

data=[map(int,l.split(“”))表示fh.readlines()中的l
?@g.d.d.c,既酷又简洁,但是如果l在生成器末尾,您不应该添加一个
?根据OP的问题,文件中有空行。@BorrajaX可以工作,或者您可以
筛选(bool,fh.readlines())
。(这是一个列表理解,而不是生成器。)哇!这是正确的!更酷@两位炼金术士!!:-DWhy
拆分(“”
?它已经在空格上分开了,如果两位数之间有多个空格,这个解决方案就不起作用了。(没有争论,这对任何数量的空白都是好的。)足够公平,尽管我发现最好是明确的。这也可能会提醒OP文件中的格式问题。