2017-02-16 2 views
0

Im simplement essayer de faire une base de données en faisant une liste de listes où chaque élément D est une liste de numéros diviser en utilisant line.splitliste append peut pas jouer car la liste python

D = [] 

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

c'est ce qui est dans test.txt

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

lorsque je tente ce que je revienne cette erreur

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__' 

quelqu'un pourrait-il expliquer ce que je fais w Rong et comment aborder correctement cela?

+1

Que faites-vous avec des crochets à 'D.append [trans]' ..? – Li357

+0

Pour ce que ça vaut, je ne suis pas tout à fait certain que c'est une simple 'faute de frappe'. L'OP semble être nouveau pour Python et il n'est pas difficile d'être confus quant à la différence entre '[]' et '()' – user1245262

Répondre

5

Essayez:

D.append(trans) 

Ce appelle la méthode append de l'objet de la liste D. Lorsque vous faites D.append[...] vous essayez d'indexer dans l'attribut append. Mais cet attribut est une fonction/méthode, donc vous ne pouvez pas indexer dedans.

+0

comment ai-je raté ça ..... wow ....... –

+0

@JoseMedina: c'est OK, nous étions tous débutants en même temps :) Le message d'erreur Python ici pourrait être meilleur, juste. Ce n'est pas très newbie-friendly. –

1

Essayez

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 

Vous pouvez également dire

for line in f1: 
    print f1 

pour voir ce que f1 est vraiment.

2

utilisation:

D = [] 

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

Votre problème est ici:

D.append[trans] 

qui essaie d'attribuer un attribut trans à l'attribut append qui est une méthode. Vous voulez

D.append(trans) 
+0

* Cela essaye d'assigner un attribut trans à l'attribut append qui est une méthode * - quoi ...? Rien n'est attribué ... – Li357