2016-07-19 15 views
0

Ich versuche, Zeilen aus einer Datei zu spalten und dann versuchen, das Split-String in einem Python-Wörterbuch hinzuzufügen, jedoch halte ich die folgende Fehlermeldung erhalten:Splitting aus einer Datei und das Hinzufügen zu einem Wörterbuch

'list' object is not callable

Eine Zeile aus der Datei sieht aus wie

a,12,15,16,17,18,92

Hier ist mein Code:

filename = "numbers.txt" 
file = open(filename, "r") 
xY = {} 
xX = {} 
for line in file: 
    p = line.split(',') 
    ID = p(0) 
    a = p(1) 
    b = p(2) 
    c = p(3) 
    d = p(4) 
    e = p(5) 
    f = p(6) 

    xY[ID] = [a, b, c] 
    yY[ID] = [d, e, f] 
+4

ändert diese Klammern Klammern zum Quadrat: 'p (0)' auf 'p [0]' –

Antwort

0

Dies war nur ein Tippfehler/Anfänger Fehler - Sequenzen werden indiziert oder in eckigen Klammern geschnitten. Klammern in Python weisen auf einen Funktionsaufruf hin.

ich Antwort bin Hinzufügen Vertiefung Fehler zu korrigieren und auch mehr pythonic mit Liste Slicing machen es:

filename = "numbers.txt" 
with open(filename, "r") as file: 
    xY = {} 
    xX = {} 
    for line in file: 
     p = line.split(',') 
     ID = p[0] 
     xY[ID], yY[ID] = p[1:4], p[-3:] 
1

line.split(',') gibt eine Liste.

Sie Zugriff Elemente der Liste der [] Dirac-Notation

list[0] kehrt das erste Element in der Liste
list[1] kehrt das zweite Element in der Liste mit
etc ...

Was waren Sie versucht zu tun war list(0), was ein Syntaxfehler ist.

Python interpretiert list(0) als Versuch, einen Funktor mit dem Argument 0 aufzurufen. Es gibt keine Funktion Call-Betreiber für ein list, daher den Fehler:

'list' object is not callable 
+1

Sie könnten hinzufügen, dass die Listen nicht aufrufbar sind und Deshalb wird der Fehler ausgelöst. –

+0

@Slayther getan, danke –

Verwandte Themen