2016-07-09 10 views
1
def dictrev(): 
    prompt = "Enter the key and value of a dictionary like this: 'key:value':" 
    list = [];list_rev = [];i = 0 
    while True: 
     element = raw_input(prompt).strip().split(':') 
     if element == ['.']: 
      break 
     list.append([]);list_rev.append([]) 
     print element 
     print list(reversed(element)) 
     list[i] = element 
     list_rev[i] = list(reversed(element)) 
     i += 1 
    print 'The dictionary you input is:' 
    print dict((list)) 
    print '\nThe dictionary whose key and value are reversed is:' 
    print dict((list_rev)) 

dictrev() 

Dies ist der Code der Frage in Core-Python-Programmierung 7-7 ist.Fehler rückgängig gemacht(): Liste ist nicht aufrufbar

Allerdings, wenn ich das Programm ausführen, ich habe eine Typeerror: 'list' Objekt

im Code nicht aufrufbar ist

print list(reversed(element))

Was ich habe, sind wie folgt durchgeführt:

  1. Suche das 'Liste ist nicht aufrufbar' Thema in Stackoverflow und Google, aber ich bekomme die Methode nicht;

  2. goole die Methode der Liste() und umgekehrt(), aber ich glaube nicht, dass es etwas falsch mit meinem Code ist

  3. Druck des variable Element, element_reversed und die Art des Elements.

  4. nehmen Sie den Code allein in einem anderen Programm wie folgt aus:

l = ['a','b']

print l

print list(reversed(l))

es nichts falsch wie ist 'Liste Objekt ist nicht aufrufbar.' Ich bin verwirrt!!!

Ich habe getan, was ich tun kann, um dieses Problem zu lösen. Danke für die Hilfe von allen.

+0

Sie keine Variablen integrierten Funktionen zuweisen. – Evert

+0

Sie überschreiben 'list' und arbeiten damit direkt vor dem Fehler in der Zeile. Was denkst du würde passieren? Außerdem ist Ihr Code weit von Standard-Python entfernt. Ich schlage vor, Sie schauen sich einige Tutorials an. – TigerhawkT3

Antwort

7

Blick auf dieser Linie:

list = [] 

Sie overrode die in Art gebaut list

+1

SO verwirrt mich wirklich manchmal mit den upvotes/downvotes ... Ich erwartete, in der Hölle für die Beantwortung von etwas, das nur 293933 Mal beantwortet wurde und ist ein Deff dupe, aber nein 6 upvotes, weil ich zu faul war, den kanonischen Dip zu finden lol. – Pythonista

+1

Yeah gute Sachen Mann, eine andere Verbesserung für Sie sind die perfekte Antwort. – RoadRunner

+1

Ja, ich schäme mich bei den meisten meiner hochgestimmten Antworten. Das ist mir auch ein Rätsel. – TigerhawkT3

Verwandte Themen