159 Wie kann ich einen Satz in Python in eine Liste konvertieren? Verwenden von a = set(["Blah", "Hello"]) a = list(a) funktioniert nicht Es gibt mir: TypeError: 'set' object is not callable python list set quelle 6 Das obige funktioniert für mich unter Python 2.7. Aukaost 20 Wenn Sie eine andere Variable in Ihrem Code benannt haben, setändern Sie diese, weil Sie die integrierte Funktion überschatten set. Mouad 5 @mouad Nein, die Zeichenfolge in Klammern in a TypeErrorist der Name des Typs , nicht der Variablenname Phihag 7 @ Richter John Deed: Du hast list = some_setirgendwo gemacht. Fügen print listSie hinzu, bevor Sie es aufrufen. Jochen Ritzel 6 Ich bin auf dieses Problem beim Debuggen in PDB gestoßen, wo 'list' als PDB-Befehl überschrieben wird. WP McNeill Antworten: 242 Ihr Code funktioniert (getestet mit cpython 2.4, 2.5, 2.6, 2.7, 3.1 und 3.2): >>> a = set(["Blah", "Hello"]) >>> a = list(a) # You probably wrote a = list(a()) here or list = set() above >>> a ['Blah', 'Hello'] Stellen Sie sicher, dass Sie nicht versehentlich überschrieben haben list: >>> assert list == __builtins__.list Phihag quelle 2 Ich habe gerade diesen genauen Code in IDLE kopiert und eingefügt. Ich bekomme den Fehler. Können Sie die Ausgabe von dir(set)und bereitstellen print set? Susam Pal ['and', 'class', 'cmp', 'contains', 'delattr', 'doc', 'eq', 'format', 'ge', 'getattribute', 'gt', 'hash', 'iand', 'init', 'ior', 'isub', 'iter', 'ixor', 'le', 'len', 'lt', 'ne', 'new', 'or', 'rand', 'reduce', 'reduce_ex', 'repr', 'ror', 'rsub', 'rxor', 'setattr', 'sizeof', 'str', 'sub', 'subclasshook', 'xor', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update'](__ wegen @Judge John Deed In welcher Zeile erhalten Sie den Fehler? Du setsiehst gut aus. Phihag Versuchen Sie Set statt Set: REF: docs.python.org/2/library/sets.html Gonzalo 72 Sie haben den integrierten Satz beschattet, indem Sie ihn versehentlich als Variablennamen verwendet haben. Hier ist eine einfache Möglichkeit, Ihren Fehler zu replizieren >>> set=set() >>> set=set() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Die erste Zeile bindet set wieder an eine Instanz von set. Die zweite Zeile versucht, die Instanz aufzurufen, was natürlich fehlschlägt. Hier ist eine weniger verwirrende Version, die unterschiedliche Namen für jede Variable verwendet. Mit einem frischen Dolmetscher >>> a=set() >>> b=a() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Hoffentlich ist es offensichtlich, dass das Aufrufen aein Fehler ist John La Rooy quelle 25 Bevor Sie schreiben set(XXXXX) , haben Sie "set" als Variable verwendet, z set = 90 #you have used "set" as an object … … a = set(["Blah", "Hello"]) a = list(a) Zhang Yiwei quelle 15 Das wird funktionieren: >>> t = [1,1,2,2,3,3,4,5] >>> print list(set(t)) [1,2,3,4,5] Wenn Sie jedoch "list" oder "set" als Variablennamen verwendet haben, erhalten Sie Folgendes: TypeError: 'set' object is not callable z.B: >>> set = [1,1,2,2,3,3,4,5] >>> print list(set(set)) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'list' object is not callable Der gleiche Fehler tritt auf, wenn Sie "Liste" als Variablennamen verwendet haben. Nick quelle 6 s = set([1,2,3]) print [ x for x in iter(s) ] Peerxu quelle 4 Ihr Code funktioniert mit Python 3.2.1 unter Win7 x64 a = set(["Blah", "Hello"]) a = list(a) type(a) <class 'list'> Wendal Chen quelle 2 Versuchen Sie es mit einer Kombination aus Karten- und Lambda-Funktionen: aList = map( lambda x: x, set ([1, 2, 6, 9, 0]) ) Es ist sehr praktisch, wenn Sie eine Reihe von Zahlen in einer Zeichenfolge haben und diese in eine Liste von Ganzzahlen konvertieren möchten: aList = map( lambda x: int(x), set (['1', '2', '3', '7', '12']) ) IgobyE quelle
242 Ihr Code funktioniert (getestet mit cpython 2.4, 2.5, 2.6, 2.7, 3.1 und 3.2): >>> a = set(["Blah", "Hello"]) >>> a = list(a) # You probably wrote a = list(a()) here or list = set() above >>> a ['Blah', 'Hello'] Stellen Sie sicher, dass Sie nicht versehentlich überschrieben haben list: >>> assert list == __builtins__.list Phihag quelle 2 Ich habe gerade diesen genauen Code in IDLE kopiert und eingefügt. Ich bekomme den Fehler. Können Sie die Ausgabe von dir(set)und bereitstellen print set? Susam Pal ['and', 'class', 'cmp', 'contains', 'delattr', 'doc', 'eq', 'format', 'ge', 'getattribute', 'gt', 'hash', 'iand', 'init', 'ior', 'isub', 'iter', 'ixor', 'le', 'len', 'lt', 'ne', 'new', 'or', 'rand', 'reduce', 'reduce_ex', 'repr', 'ror', 'rsub', 'rxor', 'setattr', 'sizeof', 'str', 'sub', 'subclasshook', 'xor', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update'](__ wegen @Judge John Deed In welcher Zeile erhalten Sie den Fehler? Du setsiehst gut aus. Phihag Versuchen Sie Set statt Set: REF: docs.python.org/2/library/sets.html Gonzalo 72 Sie haben den integrierten Satz beschattet, indem Sie ihn versehentlich als Variablennamen verwendet haben. Hier ist eine einfache Möglichkeit, Ihren Fehler zu replizieren >>> set=set() >>> set=set() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Die erste Zeile bindet set wieder an eine Instanz von set. Die zweite Zeile versucht, die Instanz aufzurufen, was natürlich fehlschlägt. Hier ist eine weniger verwirrende Version, die unterschiedliche Namen für jede Variable verwendet. Mit einem frischen Dolmetscher >>> a=set() >>> b=a() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Hoffentlich ist es offensichtlich, dass das Aufrufen aein Fehler ist John La Rooy quelle 25 Bevor Sie schreiben set(XXXXX) , haben Sie "set" als Variable verwendet, z set = 90 #you have used "set" as an object … … a = set(["Blah", "Hello"]) a = list(a) Zhang Yiwei quelle 15 Das wird funktionieren: >>> t = [1,1,2,2,3,3,4,5] >>> print list(set(t)) [1,2,3,4,5] Wenn Sie jedoch "list" oder "set" als Variablennamen verwendet haben, erhalten Sie Folgendes: TypeError: 'set' object is not callable z.B: >>> set = [1,1,2,2,3,3,4,5] >>> print list(set(set)) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'list' object is not callable Der gleiche Fehler tritt auf, wenn Sie "Liste" als Variablennamen verwendet haben. Nick quelle 6 s = set([1,2,3]) print [ x for x in iter(s) ] Peerxu quelle 4 Ihr Code funktioniert mit Python 3.2.1 unter Win7 x64 a = set(["Blah", "Hello"]) a = list(a) type(a) <class 'list'> Wendal Chen quelle 2 Versuchen Sie es mit einer Kombination aus Karten- und Lambda-Funktionen: aList = map( lambda x: x, set ([1, 2, 6, 9, 0]) ) Es ist sehr praktisch, wenn Sie eine Reihe von Zahlen in einer Zeichenfolge haben und diese in eine Liste von Ganzzahlen konvertieren möchten: aList = map( lambda x: int(x), set (['1', '2', '3', '7', '12']) ) IgobyE quelle
72 Sie haben den integrierten Satz beschattet, indem Sie ihn versehentlich als Variablennamen verwendet haben. Hier ist eine einfache Möglichkeit, Ihren Fehler zu replizieren >>> set=set() >>> set=set() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Die erste Zeile bindet set wieder an eine Instanz von set. Die zweite Zeile versucht, die Instanz aufzurufen, was natürlich fehlschlägt. Hier ist eine weniger verwirrende Version, die unterschiedliche Namen für jede Variable verwendet. Mit einem frischen Dolmetscher >>> a=set() >>> b=a() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Hoffentlich ist es offensichtlich, dass das Aufrufen aein Fehler ist John La Rooy quelle
25 Bevor Sie schreiben set(XXXXX) , haben Sie "set" als Variable verwendet, z set = 90 #you have used "set" as an object … … a = set(["Blah", "Hello"]) a = list(a) Zhang Yiwei quelle
15 Das wird funktionieren: >>> t = [1,1,2,2,3,3,4,5] >>> print list(set(t)) [1,2,3,4,5] Wenn Sie jedoch "list" oder "set" als Variablennamen verwendet haben, erhalten Sie Folgendes: TypeError: 'set' object is not callable z.B: >>> set = [1,1,2,2,3,3,4,5] >>> print list(set(set)) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'list' object is not callable Der gleiche Fehler tritt auf, wenn Sie "Liste" als Variablennamen verwendet haben. Nick quelle
4 Ihr Code funktioniert mit Python 3.2.1 unter Win7 x64 a = set(["Blah", "Hello"]) a = list(a) type(a) <class 'list'> Wendal Chen quelle
2 Versuchen Sie es mit einer Kombination aus Karten- und Lambda-Funktionen: aList = map( lambda x: x, set ([1, 2, 6, 9, 0]) ) Es ist sehr praktisch, wenn Sie eine Reihe von Zahlen in einer Zeichenfolge haben und diese in eine Liste von Ganzzahlen konvertieren möchten: aList = map( lambda x: int(x), set (['1', '2', '3', '7', '12']) ) IgobyE quelle
set
ändern Sie diese, weil Sie die integrierte Funktion überschattenset
.TypeError
ist der Name des Typs , nicht der Variablennamelist = some_set
irgendwo gemacht. Fügenprint list
Sie hinzu, bevor Sie es aufrufen.Antworten:
Ihr Code funktioniert (getestet mit cpython 2.4, 2.5, 2.6, 2.7, 3.1 und 3.2):
Stellen Sie sicher, dass Sie nicht versehentlich überschrieben haben
list
:quelle
dir(set)
und bereitstellenprint set
?['and', 'class', 'cmp', 'contains', 'delattr', 'doc', 'eq', 'format', 'ge', 'getattribute', 'gt', 'hash', 'iand', 'init', 'ior', 'isub', 'iter', 'ixor', 'le', 'len', 'lt', 'ne', 'new', 'or', 'rand', 'reduce', 'reduce_ex', 'repr', 'ror', 'rsub', 'rxor', 'setattr', 'sizeof', 'str', 'sub', 'subclasshook', 'xor', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
(__ wegenset
siehst gut aus.Sie haben den integrierten Satz beschattet, indem Sie ihn versehentlich als Variablennamen verwendet haben. Hier ist eine einfache Möglichkeit, Ihren Fehler zu replizieren
Die erste Zeile bindet set wieder an eine Instanz von set. Die zweite Zeile versucht, die Instanz aufzurufen, was natürlich fehlschlägt.
Hier ist eine weniger verwirrende Version, die unterschiedliche Namen für jede Variable verwendet. Mit einem frischen Dolmetscher
Hoffentlich ist es offensichtlich, dass das Aufrufen
a
ein Fehler istquelle
Bevor Sie schreiben
set(XXXXX)
, haben Sie "set" als Variable verwendet, zquelle
Das wird funktionieren:
Wenn Sie jedoch "list" oder "set" als Variablennamen verwendet haben, erhalten Sie Folgendes:
z.B:
Der gleiche Fehler tritt auf, wenn Sie "Liste" als Variablennamen verwendet haben.
quelle
quelle
Ihr Code funktioniert mit Python 3.2.1 unter Win7 x64
quelle
Versuchen Sie es mit einer Kombination aus Karten- und Lambda-Funktionen:
Es ist sehr praktisch, wenn Sie eine Reihe von Zahlen in einer Zeichenfolge haben und diese in eine Liste von Ganzzahlen konvertieren möchten:
quelle