Python - Conjuntos

Matemáticamente, un conjunto es una colección de elementos que no están en ningún orden en particular. Un conjunto de Python es similar a esta definición matemática con las siguientes condiciones adicionales.

  • Los elementos del conjunto no se pueden duplicar.
  • Los elementos del conjunto son inmutables (no se pueden modificar) pero el conjunto en su conjunto es mutable.
  • No hay un índice adjunto a ningún elemento en un conjunto de Python. Por lo tanto, no admiten ninguna operación de indexación o división.

Establecer operaciones

Los conjuntos en Python se usan normalmente para operaciones matemáticas como unión, intersección, diferencia y complemento, etc. Podemos crear un conjunto, acceder a sus elementos y realizar estas operaciones matemáticas como se muestra a continuación.

Creando un set

Un conjunto se crea usando la función set () o colocando todos los elementos dentro de un par de llaves.

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
Months={"Jan","Feb","Mar"}
Dates={21,22,17}
print(Days)
print(Months)
print(Dates)

Cuando se ejecuta el código anterior, produce el siguiente resultado. Tenga en cuenta cómo ha cambiado el orden de los elementos en el resultado.

set(['Wed', 'Sun', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])
set(['Jan', 'Mar', 'Feb'])
set([17, 21, 22])

Acceder a valores en un conjunto

No podemos acceder a valores individuales en un conjunto. Solo podemos acceder a todos los elementos juntos como se muestra arriba. Pero también podemos obtener una lista de elementos individuales recorriendo el conjunto.

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
 
for d in Days:
	print(d)

Cuando se ejecuta el código anterior, produce el siguiente resultado.

Wed
Sun
Fri
Tue
Mon
Thu
Sat

Agregar elementos a un conjunto

Podemos agregar elementos a un conjunto usando el método add (). Nuevamente, como se discutió, no hay un índice específico adjunto al elemento recién agregado.

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat"])
 
Days.add("Sun")
print(Days)

Cuando se ejecuta el código anterior, produce el siguiente resultado.

set(['Wed', 'Sun', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])

Eliminar artículo de un conjunto

Podemos eliminar elementos de un conjunto usando el método discard (). Nuevamente, como se discutió, no hay un índice específico adjunto al elemento recién agregado.

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat"])
 
Days.discard("Sun")
print(Days)

Cuando se ejecuta el código anterior, produce el siguiente resultado.

set(['Wed', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])

Unión de Conjuntos

La operación de unión en dos conjuntos produce un nuevo conjunto que contiene todos los elementos distintos de ambos conjuntos. En el siguiente ejemplo, el elemento "Wed" está presente en ambos conjuntos.

DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Wed","Thu","Fri","Sat","Sun"])
AllDays = DaysA|DaysB
print(AllDays)

Cuando se ejecuta el código anterior, produce el siguiente resultado. Tenga en cuenta que el resultado solo tiene un "matrimonio".

set(['Wed', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])

Intersección de conjuntos

La operación de intersección en dos conjuntos produce un nuevo conjunto que contiene solo los elementos comunes de ambos conjuntos. En el siguiente ejemplo, el elemento "Wed" está presente en ambos conjuntos.

DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Wed","Thu","Fri","Sat","Sun"])
AllDays = DaysA & DaysB
print(AllDays)

Cuando se ejecuta el código anterior, produce el siguiente resultado. Tenga en cuenta que el resultado solo tiene un "matrimonio".

set(['Wed'])

Diferencia de conjuntos

La operación de diferencia en dos conjuntos produce un nuevo conjunto que contiene solo los elementos del primer conjunto y ninguno del segundo conjunto. En el siguiente ejemplo, el elemento "Wed" está presente en ambos conjuntos, por lo que no se encontrará en el conjunto de resultados.

DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Wed","Thu","Fri","Sat","Sun"])
AllDays = DaysA - DaysB
print(AllDays)

Cuando se ejecuta el código anterior, produce el siguiente resultado. Tenga en cuenta que el resultado solo tiene un "matrimonio".

set(['Mon', 'Tue'])

Comparar conjuntos

Podemos comprobar si un conjunto dado es un subconjunto o superconjunto de otro conjunto. El resultado es Verdadero o Falso según los elementos presentes en los conjuntos.

DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
SubsetRes = DaysA <= DaysB
SupersetRes = DaysB >= DaysA
print(SubsetRes)
print(SupersetRes)

Cuando se ejecuta el código anterior, produce el siguiente resultado.

True
True