relaciones programacion programa potencia lista entre diferencia conjuntos conjunto cardinalidad python list set

python - programacion - programa de conjuntos



Obtener una lista de un conjunto en python (3)

¿Cómo obtengo el contenido de un set() en forma de list[] en Python?

Necesito hacer esto porque necesito guardar la colección en Google App Engine y los tipos de propiedad de la entidad pueden ser listas, pero no conjuntos. Sé que puedo iterar sobre todo el asunto, pero parece que debería haber una forma de atajo o "mejor práctica" para hacer esto.


Vea la respuesta de Sven, pero yo usaría la función sorted() lugar: de esa manera obtendrá los elementos en un orden agradable y predecible (para poder comparar las listas después, por ejemplo).

>>> s = set([1, 2, 3, 4, 5]) >>> sorted(s) [1, 2, 3, 4, 5]

Por supuesto, los elementos establecidos deben ser ordenados para que esto funcione. No puedes ordenar números complejos (ver el comentario de gnibbler). En Python 3, tampoco puede ordenar ningún conjunto con tipos de datos mixtos, por ejemplo, set([1, 2, ''string'']) .

Puede usar sorted(s, key=str) , pero puede que no valga la pena en estos casos.


>>> a = [1, 2, 3, 4, 2, 3] >>> b = set(a) >>> b set([1, 2, 3, 4]) >>> c = list(b) >>> c [1, 2, 3, 4] >>>


>>> s = set([1, 2, 3]) >>> list(s) [1, 2, 3]

Tenga en cuenta que la lista que obtiene no tiene un orden definido.