Estoy tratando de convertir un conjunto en una lista en Python 2.6. Estoy usando esta sintaxis:
first_list = [1,2,3,4]
my_set=set(first_list)
my_list = list(my_set)
Sin embargo, obtengo el siguiente seguimiento de pila:
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: 'set' object is not callable
¿Cómo puedo arreglar esto?
python
list
set
python-2.6
gath
fuente
fuente
TypeError: 'set' object is not callable
: ¿Qué esset
? Graciasset=set(first_list)
o algo así. Ahoraset
se redefine a este objeto establecido que causaría ese error. Inténtalo de nuevo con un nuevo intérprete de PythonRespuestas:
Ya es una lista
Quieres algo como
EDITAR: Salida de tu último comentario
Me pregunto si hiciste algo como esto:
fuente
([1,2,12,6])
y lo hacelist(([1,2,12,6]))
, obtendrá una lista como[1,2,1,2,6]
En vez de:
¿Por qué no atajar el proceso?
Esto eliminará los engaños de su lista y le devolverá una lista.
fuente
[EDITADO] Parece que anteriormente has redefinido la "lista", usándola como un nombre de variable, como este:
Y obtendrás
fuente
Siempre que esté atrapado en este tipo de problemas, intente encontrar el tipo de datos del elemento que desea convertir primero usando:
Luego, use:
para convertirlo en una lista. Puede usar la lista recién creada como cualquier lista normal en Python ahora.
fuente
Simplemente escriba:
Esto convertirá un conjunto en la forma {'1', '2'} en una lista en la forma ['1', '2'].
fuente
Revisa tu primera línea. Su rastro de pila claramente no proviene del código que ha pegado aquí, por lo que no sé exactamente qué ha hecho.
Lo que querías era
set([1, 2, 3, 4])
.La excepción "no invocable" significa que estaba haciendo algo como
set()()
: intentar llamar a unaset
instancia.fuente
No estoy seguro de que esté creando un conjunto con esta
([1, 2])
sintaxis, más bien una lista. Para crear un conjunto, debes usarset([1, 2])
.Estos corchetes simplemente envuelven su expresión, como si hubiera escrito:
Realmente no se ignoran, pero no hagas nada a tu expresión.
Nota:
(something, something_else)
creará una tupla (pero aún no hay una lista).fuente
set
?Python es un lenguaje de tipo dinámico, lo que significa que no puede definir el tipo de la variable como lo hace en C o C ++:
o
En Python, usa la coacción si cambia los tipos, o las funciones init (constructores) de los tipos para declarar una variable de un tipo:
te dará
<type 'set'>
una respuesta.Si tienes una lista, haz esto:
fuente
Hmmm, apuesto a que en algunas líneas anteriores tienes algo como:
Me equivoco ?
fuente
list
igual a crear un conjuntoset(values)
. Y estaba haciendo confusión. Su respuesta no debe ser rechazada. Pero tampoco está enganchando a los lectores :) Solo estamos hojeando y viendo cosas negativas en contra.