2016-04-17 110 views
0

在我的txt我有这样的:阅读TXT,放在矩阵蟒蛇

111111111111111111111 
101000100000010000001 
101011111011111110101 

我希望把文本文件作为矩阵的行中的每一行,每一个0和1是一个数组元素。例如,M [0] = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ]

然后我可以访问M [1] [1],其中包含。

最近我在论坛上提了一个类似的问题,工作人员帮我用非常精简的代码解决得很好。目标是成为一个列表。下面的代码波纹管:

with open ('arq.txt') the buffer: 
    l = list (map (int, buffer.read(). replace ('\ n', ''))) 
print l 

而且我怀疑有人可以通过我的一些网站参照的功能,或一本书,你已经拥有了实验,并建议初级,中级。视频课程。我试图在google上搜索一些网站,例如http://www.cplusplus.com/reference/,但发现没有类似于python。官方的python没有每个函数的例子。

回答

0

你可以试试这个:

with open ('arq.txt') as buffer: 
    mat = list(map(int, line.strip()) for line in buffer) 
print mat 
+0

“ValueError异常:空分隔符” 我试图理解这个地图和拆分功能,但我的英语不是很好。我在尝试中遇到了同样的错误。在文档中有几个使用的例子,所以我花了一段时间才明白。 – ialsafid

+0

@ialsafid,我认为这应该是好现在 – smac89

+0

好帅哥! @ Smac89使用numpy,我可以轻松地在视觉上给印刷更有趣 - >> ** print(np.matrix(A))** – ialsafid

1

好吧,这是一个相当简单的实际。不是最好看的一行代码,但它很容易理解。

试试这个:

m = {} 
with open("args.txt") as f: 
    data=f.read().split() 
    for x in range(len(data)): 
    m[x]=list(data[x]) 
print(m) 
1
mat = [] 
with open('data.txt') as fin: 
    for line in fin: 
     row = [int(item) for item in line.strip()] 
     mat.append(row)