Colecciones de datos. Conjuntos
El tercer tipo de colección de datos disponible en Python es el conjunto.
Un conjunto se diferencia de lista y tupla en dos características: no dispone de índice, por lo que no se puede acceder a su contenido mediante referencia a índice o valor de posición, y no admite elementos repetidos, lo que le asemeja al concepto matemático de conjunto.
Se recomienda utilizar conjunto en lugar de listas o tuplas cuando el volumen de datos que contiene la colección es muy elevada, ya que los conjuntos son mucho más eficientes: el acceso a la colección es en Python mucho más rápida en conjuntos que en listas o tuplas.
La sintaxis básica de un conjunto es su delimitación mediante llaves ({}), lo que permite crearlos directamente, asociados a una variable, mediante la siguiente instrucción (como ejemplo):
a = {1,3.4,"Casa"}
Al pedir la devolución de un conjunto tenemos que saber que el orden de devolución no es necesariamente el orden en que introdujimos los datos, ya que Python procede a ordenarlos según criterios propios. Por ejemplo, el conjunto {1,7,21,2} es devuelto como {1,2,21,7}
Dado que los conjuntos carecen de índice, no es posible acceder a un elemento específico de los que componen un conjunto, pero sí es posible transformar conjuntos en listas o tuplas, como también lo es convertir ambas en conjuntos. Para ello emplearemos los denominados "constructores de clase": list(), tuple() y set(). Este constructor también es necesario para crear un conjunto vacío, ya que no podemos hacerlo directamente:
- Conjunto vacío: c0=set() -> devuelve set()
- Conjunto a partir de lista: cl=set([1,2,3]) -> devuelve set{1,2,3}
- Lista a partir de conjunto: lc = list({1,2,3} -> devuelve [1,2,3]
- Conjunto a partir de tupla: ct=set((2,5,7)) -> devuelve {2,5,7}
- Tupla a partir de conjunto: tc=tuple({3,4,5}) -> devuelve (3,4,5)
cj={24,"pato","9",2.3} -> Creamos el conjunto
print(cj) -> Comprobamos el orden {24, '9', 2.3, 'pato'}
ls=list(cj) -> Convertimos el conjunto en una lista
print(ls[0]) -> Solicitamos el dato situado en primer lugar 24
NOTA. En estos casos siempre es preferible trabajar con listas o tuplas, pero podría ser conveniente utilizar conjuntos si el volumen de datos es muy elevado.
