5.4 Conjuntos: Cómo crear y manipular conjuntos en Python

Los conjuntos son una estructura de datos en Python que nos permiten almacenar elementos únicos y sin orden específico. En otras palabras, los conjuntos no permiten elementos repetidos y no tienen un índice que nos permita acceder a un elemento en particular. En este punto del curso vamos a aprender cómo crear y manipular conjuntos en Python.

## Crear un conjunto en Python

Para crear un conjunto en Python, podemos utilizar la función `set()` o colocar los elementos entre llaves `{}`. Por ejemplo:

# Crear un conjunto con la función set()
set1 = set([1, 2, 3, 4, 4, 4])
print(set1) # {1, 2, 3, 4}

# Crear un conjunto con llaves
set2 = {4, 5, 6, 6, 6}
print(set2) # {4, 5, 6}

En el primer ejemplo, creamos un conjunto utilizando la función `set()` y le pasamos una lista con elementos repetidos. El resultado es un conjunto que contiene solo los elementos únicos.

En el segundo ejemplo, creamos un conjunto utilizando llaves y le pasamos elementos repetidos. De nuevo, el resultado es un conjunto que contiene solo los elementos únicos.

## Operaciones con conjuntos

Los conjuntos en Python tienen varias operaciones que podemos utilizar para manipularlos. Algunas de las más comunes son:

### Unión

La unión de dos conjuntos nos devuelve un nuevo conjunto que contiene todos los elementos de ambos conjuntos. En Python, podemos usar el operador `|` o la función `union()` para realizar la unión de dos conjuntos. Por ejemplo:

set1 = {1, 2, 3}
set2 = {3, 4, 5}
set3 = set1 | set2
set4 = set1.union(set2)

print(set3) # {1, 2, 3, 4, 5}
print(set4) # {1, 2, 3, 4, 5}

En este ejemplo, creamos dos conjuntos (`set1` y `set2`) y realizamos la unión de ellos utilizando el operador `|` y la función `union()`. En ambos casos, el resultado es un conjunto que contiene todos los elementos de `set1` y `set2`.

### Intersección

La intersección de dos conjuntos nos devuelve un nuevo conjunto que contiene solo los elementos que están presentes en ambos conjuntos. En Python, podemos usar el operador `&` o la función `intersection()` para realizar la intersección de dos conjuntos. Por ejemplo:

set1 = {1, 2, 3}
set2 = {3, 4, 5}
set3 = set1 & set2
set4 = set1.intersection(set2)

print(set3) # {3}
print(set4) # {3}

En este ejemplo, creamos dos conjuntos (`set1` y `set2`) y realizamos la intersección de ellos utilizando el operador `&` y la función `intersection()`. En ambos casos, el resultado es un conjunto que contiene solo el elemento 3, que es el único elemento que está presente en ambos conjuntos.

### Diferencia

La diferencia de dos conjuntos nos devuelve un nuevo conjunto que contiene los elementos que están presentes en el primer conjunto pero no en el segundo. En Python, podemos usar el operador `-` o la función `difference()` para realizar la diferencia de dos conjuntos. Por ejemplo:

set1 = {1, 2, 3}
set2 = {3, 4, 5}
set3 = set1 - set2
set4 = set1.difference(set2)

print(set3) # {1, 2}
print(set4) # {1, 2}

En este ejemplo, creamos dos conjuntos (`set1` y `set2`) y realizamos la diferencia de ellos utilizando el operador `-` y la función `difference()`. En ambos casos, el resultado es un conjunto que contiene los elementos 1 y 2, que están presentes en `set1` pero no en `set2`.

### Diferencia simétrica

La diferencia simétrica de dos conjuntos nos devuelve un nuevo conjunto que contiene los elementos que están presentes en uno u otro conjunto, pero no en ambos. En Python, podemos usar la función `symmetric_difference()` para realizar la diferencia simétrica de dos conjuntos. Por ejemplo:

set1 = {1, 2, 3}
set2 = {3, 4, 5}
set3 = set1.symmetric_difference(set2)

print(set3) # {1, 2, 4, 5}

En este ejemplo, creamos dos conjuntos (`set1` y `set2`) y realizamos la diferencia simétrica de ellos utilizando la función `symmetric_difference()`. El resultado es un conjunto que contiene los elementos 1, 2, 4 y 5, que están presentes en uno u otro conjunto, pero no en ambos.

### Subconjunto y superconjunto

Podemos verificar si un conjunto es subconjunto o superconjunto de otro utilizando los métodos `issubset()` e `issuperset()`. Por ejemplo:

set1 = {1, 2, 3, 4}
set2 = {1, 2, 3}
set3 = {1, 2, 3, 4, 5}

print(set2.issubset(set1)) # True
print(set1.issuperset(set2)) # True
print(set1.issuperset(set3)) # False

En este ejemplo, creamos tres conjuntos (`set1`, `set2` y `set3`) y verificamos si`set2` es subconjunto de `set1`, si `set1` es superconjunto de `set2` y si `set1` es superconjunto de `set3`. En el primer y segundo caso, el resultado es `True` porque `set2` es un subconjunto de `set1` y `set1` es superconjunto de `set2`. En el tercer caso, el resultado es `False` porque `set3` contiene el elemento 5, que no está presente en `set1`.

## Modificar conjuntos

Los conjuntos en Python son mutables, lo que significa que podemos agregar o eliminar elementos de ellos. Para agregar un elemento a un conjunto, podemos utilizar el método `add()`. Para eliminar un elemento de un conjunto, podemos utilizar el método `remove()` o `discard()`. La diferencia entre estos dos últimos es que `remove()` genera un error si el elemento no está presente en el conjunto, mientras que `discard()` no genera ningún error. Por ejemplo:

set1 = {1, 2, 3}
set1.add(4)
print(set1) # {1, 2, 3, 4}

set1.remove(2)
print(set1) # {1, 3, 4}

set1.discard(5)
print(set1) # {1, 3, 4}

En este ejemplo, creamos un conjunto (`set1`) y agregamos el elemento 4 utilizando el método `add()`. Luego, eliminamos el elemento 2 utilizando el método `remove()` y verificamos que el conjunto ahora contiene solo los elementos 1, 3 y 4. Finalmente, intentamos eliminar el elemento 5 utilizando el método `discard()`, pero como el elemento no está presente en el conjunto, no se produce ningún cambio.

## Conclusión

En resumen, los conjuntos en Python son una estructura de datos muy útil para almacenar elementos únicos y realizar operaciones entre ellos. Las operaciones más comunes son la unión, la intersección, la diferencia y la diferencia simétrica. Además, los conjuntos son mutables y podemos agregar o eliminar elementos de ellos utilizando los métodos `add()`, `remove()` y `discard()`.

AnteriorSiguiente

[mwai_chat]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *