Un set en Python es una estructura de datos que se usa para almacenar elementos únicos sin que existan preocupaciones por el orden. Son una parte muy importante de las listas y diccionarios y por eso hoy queremos contarte un poco qué son y algunos aspectos importantes alrededor de los sets en Python.
¿Qué son los sets en Python?
Los sets en Python son una colección sin orden y sin elementos duplicados. Se diferencian de las listas o las tuplas porque estos han sido diseñados para almacenar solo valores únicos, esto quiere decir que si intentas agregar elementos que estén duplicados, Python los borrará de manera automática.
Los sets en Python funcionan del mismo modo que en las matemáticas, en donde dos o más elementos no pueden repetirse y el orden no es relevante.
Algunos de los aspectos que caracterizan a los sets en Python son:
- Unicidad: Un set no permite duplicados, es decir, cada elemento es único.
- Desordenado: A diferencia de las listas, los sets no mantienen el orden de inserción.
- Inmutabilidad de los elementos: Los elementos dentro de un set deben ser inmutables, es decir, no puedes usar listas o diccionarios dentro de un set, aunque sí puedes usar tuplas.
Creación de sets en Python
Tienes dos formas principales para crear sets en Python: la primera es usando la función set( ) y la segunda es simplemente usando llaves { }. Veamos cómo funcionan ambas formas con ejemplos:
# Creación de un set usando set()
s = set([1, 2, 3, 4, 5])
print(s) # Output: {1, 2, 3, 4, 5}
# Creación de un set usando llaves {}
s = {1, 2, 3, 4, 5}
print(s) # Output: {1, 2, 3, 4, 5}
El resultado sería:
{1, 2, 3, 4, 5}
Si bien ambos métodos son similares, hay una pequeña diferencia: en caso de que crees un set vacío usando llaves { }, Python lo interpretará un diccionario vacío y no como un set vacío. Para crear un set vacío de manera correcta debes usar la función set( ):
# Creación de un set vacío
s = set()
print(s) # Output: set()
El output de este código sería:
set()
Operaciones básicas con sets
Algunas de las operaciones más básicas que puedes realizar con sets en Python son:
- Añadir elementos a un set: puedes hacer esto utilizando el método add( ). Cabe recordar que si el elemento ya está dentro del set, no se añadirá de nuevo:
s = {1, 2, 3}
s.add(4)
print(s) # Output: {1, 2, 3, 4}
- Eliminar elementos de un set: Esto lo podemos hacer de diferentes modos, con métodos como remove( ), discard( ) y pop( ). La diferencia entre remove( ) y discard( ) es que si haces el intento de eliminar un elemento que no existe con remove( ), te aparecerá un error, mientras que discard( ) simplemente lo ignorará:
# Usando remove()
s.remove(3)
print(s) # Output: {1, 2, 4}
# Usando discard()
s.discard(2)
print(s) # Output: {1, 4}
El método pop( ) elimina un elemento aleatorio del set y lo devuelve.
s.pop()
print(s) # Eliminará un elemento al azar
- Verificar la pertenencia de un elemento: para ello puedes hacer uso del operador in:
s = {1, 2, 3}
print(2 in s) # Output: True
print(5 in s) # Output: False
Métodos útiles de los sets en Python
Existen algunos métodos incorporados dentro de los sets en Python que te ayudan con la manipulación de sus elementos. Veamos algunos y ampliemos el funcionamiento de otros ya mencionados:
- add( ): Añadir elementos: este permite añadir un solo elemento al set, teniendo en cuenta que no esté presente porque ya habíamos mencionado que los sets en Python no admiten elementos duplicados:
s = {1, 2, 3}
s.add(4)
print(s) # Output: {1, 2, 3, 4}
- remove( ) y discard( ): Eliminar elementos: Ambos métodos permiten eliminar elementos de un set:
s = {1, 2, 3}
s.remove(2) # Elimina el 2
print(s) # Output: {1, 3}
s.discard(4) # No hará nada, ya que 4 no está en el set
- pop(): Eliminar un elemento aleatorio: El método pop() elimina y devuelve un elemento aleatorio del set. Esto es útil si no te importa qué elemento se elimina:
s = {1, 2, 3}
element = s.pop()
print(element) # Podría eliminar 1, 2 o 3
print(s) # Set sin el elemento eliminado
- clear(): Vaciar un set: Si deseas eliminar todos los elementos de un set de golpe,
clear()
es tu mejor opción:
s = {1, 2, 3}
s.clear()
print(s) # Output: set()
La programación puede ser un campo fácil o difícil, dependiendo de cómo lo mires y de dónde inicies tu camino formativo. Si quieres aprender con los mejores y tener guía constante respecto a tus expectativas laborales, únete al bootcamp en big data y data science que tiene Keepcoding para ti. Allí aprenderás sobre todo tipo de técnicas que te servirán en estemundo de la programación. ¡Dale un giro profesional a tu vida ahora mismo!