Ich versuche, eine Liste in ein Tupel umzuwandeln.
Die meisten Lösungen bei Google bieten den folgenden Code:
l = [4,5,6]
tuple(l)
Der Code führt jedoch zu einer Fehlermeldung, wenn ich ihn ausführe:
TypeError: 'Tupel'-Objekt kann nicht aufgerufen werden Wie kann ich dieses Problem beheben?
python
python-2.7
tuples
LynnH
quelle
quelle
tuple
anderen Stelle vergeben?Antworten:
Es sollte gut funktionieren. Nicht verwenden
tuple
,list
oder andere spezielle Namen als Variablennamen. Es ist wahrscheinlich das, was Ihr Problem verursacht.quelle
Wenn Sie den Kommentar von eumiro erweitern, wird normalerweise
tuple(l)
eine Listel
in ein Tupel konvertiert :Wenn Sie jedoch neu definiert haben
tuple
, ein Tupel zu sein, anstatttype
tuple
:dann erhalten Sie einen TypeError, da das Tupel selbst nicht aufrufbar ist:
Sie können die ursprüngliche Definition wiederherstellen,
tuple
indem Sie Ihren Interpreter beenden und neu starten, oder (dank @glglgl):quelle
Sie könnten so etwas getan haben:
Hier ist das Problem ... Da Sie eine
tuple
Variable verwendet haben, um einetuple (45, 34)
frühere zu halten ... Also, jetzttuple
ist eineobject
vom Typtuple
jetzt ...Es ist nicht mehr ein
type
und daher ist es nicht mehrCallable
.Never
Verwenden Sie einen beliebigen integrierten Typ als Variablennamen ... Sie müssen einen anderen Namen verwenden. Verwenden Sie stattdessen einen beliebigen Namen für Ihre Variable ...quelle
Um eine weitere Alternative zu
tuple(l)
Python> = hinzuzufügen ,3.5
können Sie Folgendes tun:kurz, etwas schneller, leidet aber wahrscheinlich an Lesbarkeit.
Dadurch wird die Liste
l
im Wesentlichen in einem Tupelliteral entpackt, das aufgrund des Vorhandenseins eines einzelnen Kommas erstellt wird,
.Ps: Der Fehler, den Sie erhalten, ist auf die Maskierung des Namens zurückzuführen,
tuple
dh Sie haben das Namenstupel irgendwo zugewiesen, ztuple = (1, 2, 3)
.Mit
del tuple
sollten Sie gut zu gehen.quelle
Ich finde viele Antworten aktuell und richtig beantwortet, werde aber dem Stapel der Antworten etwas Neues hinzufügen.
In Python gibt es unendlich viele Möglichkeiten, dies zu tun, hier sind einige Beispiele
Normaler Weg
kluger Weg
Denken Sie daran, dass Tupel unveränderlich ist und zum Speichern von Wertgegenständen verwendet wird. Zum Beispiel werden Passwort, Schlüssel oder Hashes in Tupeln oder Wörterbüchern gespeichert. Wenn ein Messer benötigt wird, warum sollte man ein Schwert verwenden, um Äpfel zu schneiden? Verwenden Sie es mit Bedacht, es wird auch Ihr Programm effizienter machen.
quelle
tuple(l)
(erster Weg) ist kürzer alstuple(item for item in l)
(zweiter Weg).