Ich versuche, einen Satz in Python 2.6 in eine Liste zu konvertieren. Ich benutze diese Syntax:
first_list = [1,2,3,4]
my_set=set(first_list)
my_list = list(my_set)
Ich erhalte jedoch die folgende Stapelverfolgung:
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: 'set' object is not callable
Wie kann ich das beheben?
python
list
set
python-2.6
gath
quelle
quelle
TypeError: 'set' object is not callable
: Was istset
? Dankeset=set(first_list)
oder so. Jetztset
wird für dieses festgelegte Objekt neu definiert, was diesen Fehler verursachen würde. Versuchen Sie es erneut mit einem frischen Python-InterpreterAntworten:
Es ist bereits eine Liste
Willst du so etwas wie
BEARBEITEN: Ausgabe Ihres letzten Kommentars
Ich frage mich, ob Sie so etwas getan haben:
quelle
([1,2,12,6])
und Sie dies tun, erhaltenlist(([1,2,12,6]))
Sie eine Liste wie[1,2,1,2,6]
Anstatt:
Warum nicht den Prozess abkürzen:
Dadurch werden die Dupes aus Ihrer Liste entfernt und eine Liste an Sie zurückgegeben.
quelle
[BEARBEITET] Es scheint, dass Sie "Liste" früher neu definiert und als Variablennamen verwendet haben, wie folgt:
Und du wirst bekommen
quelle
Wenn Sie in solchen Problemen stecken, versuchen Sie, den Datentyp des Elements zu finden, das Sie zuerst konvertieren möchten, indem Sie Folgendes verwenden:
Dann benutze:
um es in eine Liste umzuwandeln. Sie können die neu erstellte Liste jetzt wie jede normale Liste in Python verwenden.
quelle
Geben Sie einfach Folgendes ein:
Dadurch wird eine Menge in der Form {'1', '2'} in eine Liste in der Form ['1', '2'] umgewandelt.
quelle
Überprüfen Sie Ihre erste Zeile. Ihre Stapelverfolgung stammt eindeutig nicht aus dem Code, den Sie hier eingefügt haben, daher weiß ich nicht genau, was Sie getan haben.
Was du wolltest war
set([1, 2, 3, 4])
.Die Ausnahme "nicht aufrufbar" bedeutet, dass Sie
set()()
versucht haben, eineset
Instanz aufzurufen .quelle
Ich bin mir nicht sicher, ob Sie ein Set mit dieser
([1, 2])
Syntax erstellen , sondern eine Liste. Um ein Set zu erstellen, sollten Sie verwendenset([1, 2])
.Diese Klammern umhüllen nur Ihren Ausdruck, als hätten Sie geschrieben:
Es werden nicht wirklich ignoriert, aber tun Sie nichts mit Ihrem Ausdruck.
Hinweis:
(something, something_else)
Erstellt ein Tupel (aber immer noch keine Liste).quelle
set
?Python ist eine dynamisch typisierte Sprache. Dies bedeutet, dass Sie den Typ der Variablen nicht wie in C oder C ++ definieren können:
oder
In Python verwenden Sie das Erzwingen, wenn Sie Typen ändern, oder die Init-Funktionen (Konstruktoren) der Typen, um eine Variable eines Typs zu deklarieren:
werde dir geben
<type 'set'>
eine Antwort geben.Wenn Sie eine Liste haben, gehen Sie folgendermaßen vor:
quelle
Hmmm, ich wette, dass Sie in einigen vorherigen Zeilen so etwas wie:
Liege ich falsch ?
quelle
list
gleichgesetzt, um Satz zu erstellenset(values)
. Und es machte Verwirrung. Ihre Antwort sollte nicht abgelehnt werden. Aber es hakt auch nicht die Leser :) Wir überfliegen nur und sehen, dass etwas falsch ist.