2017-02-16 116 views
0

林只是试图通过使列表的一个列表,其中在d每个项目是利用line.split着追加列表列出蟒蛇

D = [] 

f1 = open("test.txt",'r') 
for line in f1: 
    trans = line.split() 
    D.append[trans] 

分裂号码列表,使一个数据库,这是什么在test.txt的

12 34 34 324 32432 4 
23 432 43 557 56 8 
124 234 64 457 56 

当我尝试这个我回来这个错误

Traceback (most recent call last): 
    File "practice.py", line 6, in <module> 
    D.append[trans] 
TypeError: 'builtin_function_or_method' object has no attribute '__getitem__' 

有人能解释我在做什么w ^荣,如何正确接近这一点?

+1

你在用'D.append [trans]'方括号来做什么?..? – Li357

+0

对于它的价值,我不完全确定这是一个简单的'错字'。 OP似乎对Python来说是新手,并且不难理解'[]'和'()'之间的区别 – user1245262

回答

5

尝试:

D.append(trans) 

这将调用列表对象D的方法append。当您执行D.append[...]时,您尝试索引append属性。但是这个属性是一个函数/方法,所以你不能索引它。

+0

我怎么会错过.....哇....... –

+0

@JoseMedina:没关系,我们都是同一时间的初学者:)这里的Python错误信息可能会更好,公平。这不是新手友好的。 –

1

尝试

D = [] 

f1 = open("test.txt",'r') 
for line in f1.getlines(): 
    trans = line.split() 
    D.append(trans) # with() instead of [] since this is a function call and not an index 

你也可以说

for line in f1: 
    print f1 

,看看什么是真正的F1。

2

使用:

D = [] 

f1 = open("test.txt",'r') 
for line in f1: 
    trans = line.split() 
    D.append(trans) 
0

你的问题是在这里:

D.append[trans] 

这是试图分配给属性跨属性追加这是一种方法。你想要

D.append(trans) 
+0

*这是试图分配一个属性trans到属性append这是一个方法* - 什么...?没有分配... – Li357