varios una serie numeros misma llenar listas lista length generar funcion eliminar elementos definir conjuntos comparar como python python-2.6

serie - ¿Cómo convertir un conjunto a una lista en python?



listas en python (8)

Estoy tratando de convertir un conjunto a 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 rastro de pila:

Traceback (most recent call last): File "<console>", line 1, in <module> TypeError: ''set'' object is not callable

¿Cómo puedo arreglar esto?


En lugar de:

first_list = [1,2,3,4] my_set=set(first_list) my_list = list(my_set)

¿Por qué no acortar el proceso?

my_list = list(set([1,2,3,4])

Esto eliminará los engaños de su lista y le devolverá una lista.


Hmmm, apuesto a que en algunas líneas anteriores tienes algo como:

list = set(something)

Me equivoco ?


No estoy seguro de que esté creando un conjunto con esta sintaxis ([1, 2]) , sino una lista. Para crear un conjunto, debe usar set([1, 2]) .

Estos corchetes están envolviendo su expresión, como si hubiera escrito:

if (condition1 and condition2 == 3): print something

No hay realmente ignorado, pero no hagas nada con tu expresión.

Nota: (something, something_else) creará una tupla (pero aún no hay lista).


Python es un lenguaje de tipado dinámico, lo que significa que no puede definir el tipo de la variable como lo hace en C o C ++:

type variable = value

o

type variable(value)

En Python, utiliza la coerción si cambia los tipos, o las funciones de inicio (constructores) de los tipos para declarar una variable de un tipo:

my_set = set([1,2,3]) type my_set

le dará <type ''set''> para obtener una respuesta.

Si tiene una lista, haga esto:

my_list = [1,2,3] my_set = set(my_list)


Revisa tu primera línea. Evidentemente, tu rastro de pila no proviene del código que has pegado aquí, así que no sé exactamente qué has hecho.

>>> my_set=([1,2,3,4]) >>> my_set [1, 2, 3, 4] >>> type(my_set) <type ''list''> >>> list(my_set) [1, 2, 3, 4] >>> type(_) <type ''list''>

Lo que quería se set([1, 2, 3, 4]) .

>>> my_set = set([1, 2, 3, 4]) >>> my_set set([1, 2, 3, 4]) >>> type(my_set) <type ''set''> >>> list(my_set) [1, 2, 3, 4] >>> type(_) <type ''list''>

La excepción "no llamable" significa que estaba haciendo algo como set()() - intentando llamar a una instancia set .


Siempre que se encuentre atascado en ese tipo de problemas, intente primero buscar el tipo de datos del elemento que desea convertir utilizando:

type(my_set)

Luego, usa:

list(my_set)

para convertirlo en una lista. Puede usar la lista recién construida como cualquier lista normal en python ahora.


Ya es una lista

type(my_set) >>> <type ''list''>

¿Quieres algo así como

my_set = set([1,2,3,4]) my_list = list(my_set) print my_list >> [1, 2, 3, 4]

EDITAR: Salida de tu último comentario

>>> my_list = [1,2,3,4] >>> my_set = set(my_list) >>> my_new_list = list(my_set) >>> print my_new_list [1, 2, 3, 4]

Me pregunto si hiciste algo como esto:

>>> set=set() >>> set([1,2]) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: ''set'' object is not callable


[EDITADO] Parece que antes redefiniste "lista", utilizándolo como un nombre de variable, como este:

list = set([1,2,3,4]) # oops #... first_list = [1,2,3,4] my_set=set(first_list) my_list = list(my_set)

Y obtendrás

Traceback (most recent call last): File "<console>", line 1, in <module> TypeError: ''set'' object is not callable