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()`.
Deja una respuesta