Mostrando entradas con la etiqueta Conjunto. Mostrar todas las entradas
Mostrando entradas con la etiqueta Conjunto. Mostrar todas las entradas

jueves, 13 de junio de 2024

Lenguajes. Python.

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)
Si queremos obtener el contenido individual de una determinada posición en un conjunto, primero deberemos obtener el orden que ocupa ese elemento en el conjunto, ya que no es igual al orden en que lo introducimos, y después convertirlo en lista o tupla y solicitar la posición que nos interese. Por ejemplo:

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.