159 ¿Cómo puedo convertir un conjunto en una lista en Python? Utilizando a = set(["Blah", "Hello"]) a = list(a) no funciona Me da: TypeError: 'set' object is not callable python list set fuente 66 Lo anterior funciona para mí en Python 2.7. aukaost 20 si nombró otra variable en su código, setcámbiela porque está sombreando la función incorporada set. mouad 55 @mouad No, la cadena entre paréntesis en a TypeErrores el nombre del tipo , no el nombre de la variable phihag 77 @ Juez John Deed: Lo hiciste en list = some_setalguna parte. Agregue print listantes de llamarlo. Jochen Ritzel 66 Llegué a este problema mientras depuraba en PDB donde 'lista' se anula como un comando PDB. WP McNeill Respuestas: 242 Su código hace el trabajo (probado con CPython 2.4, 2.5, 2.6, 2.7, 3.1 y 3.2): >>> a = set(["Blah", "Hello"]) >>> a = list(a) # You probably wrote a = list(a()) here or list = set() above >>> a ['Blah', 'Hello'] Comprueba que no sobrescribiste listpor accidente: >>> assert list == __builtins__.list phihag fuente 2 Acabo de copiar y pegar este código exacto en IDLE; Me sale el error ¿Puede proporcionar la salida de dir(set)y 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'](eliminado __ por límite de char) @Judge John Deed ¿En qué línea obtienes el error? Tu se setve bien. phihag pruebe Set en lugar de set: REF: docs.python.org/2/library/sets.html Gonzalo 72 Ha sombreado el conjunto incorporado al usarlo accidentalmente como un nombre de variable, aquí hay una manera simple de replicar su error >>> set=set() >>> set=set() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable La primera línea vuelve a vincular set a una instancia de set. La segunda línea está tratando de llamar a la instancia que, por supuesto, falla. Aquí hay una versión menos confusa que usa diferentes nombres para cada variable. Usando un intérprete nuevo >>> a=set() >>> b=a() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Esperemos que sea obvio que llamar aes un error John La Rooy fuente 25 antes de escribir set(XXXXX) ha usado "set" como variable, por ejemplo set = 90 #you have used "set" as an object … … a = set(["Blah", "Hello"]) a = list(a) Zhang Yiwei fuente 15 Esto funcionará: >>> t = [1,1,2,2,3,3,4,5] >>> print list(set(t)) [1,2,3,4,5] Sin embargo, si ha utilizado "lista" o "conjunto" como nombre de variable, obtendrá el: TypeError: 'set' object is not callable p.ej: >>> 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 Se producirá el mismo error si ha utilizado "lista" como nombre de variable. Mella fuente 6 s = set([1,2,3]) print [ x for x in iter(s) ] peerxu fuente 4 Su código funciona con Python 3.2.1 en Win7 x64 a = set(["Blah", "Hello"]) a = list(a) type(a) <class 'list'> Wendal Chen fuente 2 Intente usar la combinación de funciones de mapa y lambda: aList = map( lambda x: x, set ([1, 2, 6, 9, 0]) ) Es un enfoque muy conveniente si tiene un conjunto de números en cadena y desea convertirlo en una lista de enteros: aList = map( lambda x: int(x), set (['1', '2', '3', '7', '12']) ) IgobyE fuente
242 Su código hace el trabajo (probado con CPython 2.4, 2.5, 2.6, 2.7, 3.1 y 3.2): >>> a = set(["Blah", "Hello"]) >>> a = list(a) # You probably wrote a = list(a()) here or list = set() above >>> a ['Blah', 'Hello'] Comprueba que no sobrescribiste listpor accidente: >>> assert list == __builtins__.list phihag fuente 2 Acabo de copiar y pegar este código exacto en IDLE; Me sale el error ¿Puede proporcionar la salida de dir(set)y 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'](eliminado __ por límite de char) @Judge John Deed ¿En qué línea obtienes el error? Tu se setve bien. phihag pruebe Set en lugar de set: REF: docs.python.org/2/library/sets.html Gonzalo 72 Ha sombreado el conjunto incorporado al usarlo accidentalmente como un nombre de variable, aquí hay una manera simple de replicar su error >>> set=set() >>> set=set() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable La primera línea vuelve a vincular set a una instancia de set. La segunda línea está tratando de llamar a la instancia que, por supuesto, falla. Aquí hay una versión menos confusa que usa diferentes nombres para cada variable. Usando un intérprete nuevo >>> a=set() >>> b=a() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Esperemos que sea obvio que llamar aes un error John La Rooy fuente 25 antes de escribir set(XXXXX) ha usado "set" como variable, por ejemplo set = 90 #you have used "set" as an object … … a = set(["Blah", "Hello"]) a = list(a) Zhang Yiwei fuente 15 Esto funcionará: >>> t = [1,1,2,2,3,3,4,5] >>> print list(set(t)) [1,2,3,4,5] Sin embargo, si ha utilizado "lista" o "conjunto" como nombre de variable, obtendrá el: TypeError: 'set' object is not callable p.ej: >>> 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 Se producirá el mismo error si ha utilizado "lista" como nombre de variable. Mella fuente 6 s = set([1,2,3]) print [ x for x in iter(s) ] peerxu fuente 4 Su código funciona con Python 3.2.1 en Win7 x64 a = set(["Blah", "Hello"]) a = list(a) type(a) <class 'list'> Wendal Chen fuente 2 Intente usar la combinación de funciones de mapa y lambda: aList = map( lambda x: x, set ([1, 2, 6, 9, 0]) ) Es un enfoque muy conveniente si tiene un conjunto de números en cadena y desea convertirlo en una lista de enteros: aList = map( lambda x: int(x), set (['1', '2', '3', '7', '12']) ) IgobyE fuente
72 Ha sombreado el conjunto incorporado al usarlo accidentalmente como un nombre de variable, aquí hay una manera simple de replicar su error >>> set=set() >>> set=set() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable La primera línea vuelve a vincular set a una instancia de set. La segunda línea está tratando de llamar a la instancia que, por supuesto, falla. Aquí hay una versión menos confusa que usa diferentes nombres para cada variable. Usando un intérprete nuevo >>> a=set() >>> b=a() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'set' object is not callable Esperemos que sea obvio que llamar aes un error John La Rooy fuente
25 antes de escribir set(XXXXX) ha usado "set" como variable, por ejemplo set = 90 #you have used "set" as an object … … a = set(["Blah", "Hello"]) a = list(a) Zhang Yiwei fuente
15 Esto funcionará: >>> t = [1,1,2,2,3,3,4,5] >>> print list(set(t)) [1,2,3,4,5] Sin embargo, si ha utilizado "lista" o "conjunto" como nombre de variable, obtendrá el: TypeError: 'set' object is not callable p.ej: >>> 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 Se producirá el mismo error si ha utilizado "lista" como nombre de variable. Mella fuente
4 Su código funciona con Python 3.2.1 en Win7 x64 a = set(["Blah", "Hello"]) a = list(a) type(a) <class 'list'> Wendal Chen fuente
2 Intente usar la combinación de funciones de mapa y lambda: aList = map( lambda x: x, set ([1, 2, 6, 9, 0]) ) Es un enfoque muy conveniente si tiene un conjunto de números en cadena y desea convertirlo en una lista de enteros: aList = map( lambda x: int(x), set (['1', '2', '3', '7', '12']) ) IgobyE fuente
set
cámbiela porque está sombreando la función incorporadaset
.TypeError
es el nombre del tipo , no el nombre de la variablelist = some_set
alguna parte. Agregueprint list
antes de llamarlo.Respuestas:
Su código hace el trabajo (probado con CPython 2.4, 2.5, 2.6, 2.7, 3.1 y 3.2):
Comprueba que no sobrescribiste
list
por accidente:fuente
dir(set)
yprint 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']
(eliminado __ por límite de char)set
ve bien.Ha sombreado el conjunto incorporado al usarlo accidentalmente como un nombre de variable, aquí hay una manera simple de replicar su error
La primera línea vuelve a vincular set a una instancia de set. La segunda línea está tratando de llamar a la instancia que, por supuesto, falla.
Aquí hay una versión menos confusa que usa diferentes nombres para cada variable. Usando un intérprete nuevo
Esperemos que sea obvio que llamar
a
es un errorfuente
antes de escribir
set(XXXXX)
ha usado "set" como variable, por ejemplofuente
Esto funcionará:
Sin embargo, si ha utilizado "lista" o "conjunto" como nombre de variable, obtendrá el:
p.ej:
Se producirá el mismo error si ha utilizado "lista" como nombre de variable.
fuente
fuente
Su código funciona con Python 3.2.1 en Win7 x64
fuente
Intente usar la combinación de funciones de mapa y lambda:
Es un enfoque muy conveniente si tiene un conjunto de números en cadena y desea convertirlo en una lista de enteros:
fuente