Conjuntos en Python: Manipulación y Operaciones

Introducción a los conjuntos

Un conjunto es una colección desordenada y mutable que no permite elementos duplicados. Gracias a esta característica, los conjuntos son ideales para eliminar duplicados de secuencias y realizar operaciones matemáticas como uniones, intersecciones y diferencias.

Se pueden crear utilizando llaves {} o la función set(). La sintaxis básica es:

conjunto = {valor1, valor2, ...}
# o
conjunto = set(iterable)

Por ejemplo:

numeros_a = {1, 2, 3, 4}
numeros_b = set([4, 5, 6, 7])

Importante: Para crear un conjunto vacío, debe usarse set(), ya que {} genera un diccionario vacío. Ejemplos prácticos

Los conjuntos eliminan automáticamente los valores repetidos:

>>> frutas = {'manzana', 'naranja', 'manzana', 'pera', 'naranja', 'plátano'}
>>> print(frutas)
{'naranja', 'plátano', 'pera', 'manzana'}

Además, permiten verificar rápidamente si un elemento está presente:

>>> 'naranja' in frutas
True
>>> 'espinaca' in frutas
False

Operaciones entre conjuntos

Considere dos conjuntos derivados de cadenas:

>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a
{'a', 'r', 'b', 'c', 'd'}

  • a - b: Elementos en a pero no en b → {'r', 'd', 'b'}
  • a | b: Unión de a y b → {'a', 'r', 'b', 'c', 'd', 'l', 'm', 'z'}
  • a & b: Intersección → {'a', 'c'}
  • a ^ b: Diferencia simétrica (elementos en uno u otro, pero no en ambos) → {'r', 'd', 'b', 'l', 'm', 'z'}

Comprensión de conjuntos

Al igual que las listas, Python soporta comprensión de conjuntos:

>>> resultado = {letra for letra in 'abracadabra' if letra not in 'abc'}
>>> resultado
{'r', 'd'}

Manipulación de elementos

Añadir elementos

El método add() inserta un solo elemento:

>>> sitios = set(['Google', 'Runoob', 'Taobao'])
>>> sitios.add('Facebook')
>>> print(sitios)
{'Taobao', 'Facebook', 'Google', 'Runoob'}

Para añadir múltiples elementos desde distintos iterables, use update():

>>> sitios.update([1, 2], [3, 4])
>>> print(sitios)
{1, 2, 3, 4, 'Google', 'Taobao', 'Runoob', 'Facebook'}

Eliminar elementos

Use remove() para eliminar un elemento específico. Si no existe, lanza un error KeyError:

>>> sitios.remove('Taobao')
>>> sitios.remove('Inexistente')  # Genera excepción

En cambio, discard() no genera error si el elemento no está presente:

>>> sitios.discard('Amazon')  # No hace nada si no existe

El método pop() elimina y devuelve un elemento arbitrario (no se puede predecir cuál será):

>>> eliminado = sitios.pop()
>>> print(eliminado)

Otras operaciones comunes

Obtener el número de elementos con len():

>>> len(sitios)
7

Vaciar completamente el conjunto:

>>> sitios.clear()
>>> print(sitios)
set()

Verificar pertenencia:

>>> 'Google' in sitios
False

Métodos disponibles para conjuntos

Método Descripción
add() Agrega un elemento al conjunto
clear() Elimina todos los elementos
copy() Devuelve una copia superficial del conjunto
difference() Retorna los elementos exclusivos del conjunto original
difference_update() Actualiza el conjunto removiendo elementos comunes con otro
discard() Remueve un elemento sin lanzar error si no existe
intersection() Devuelve los elementos comunes entre conjuntos
intersection_update() Actualiza el conjunto para mantener solo los elementos comunes
isdisjoint() Retorna True si no hay elementos en común
issubset() Verifica si el conjunto es subconjunto de otro
issuperset() Verifica si el conjunto contiene todos los elementos de otro
pop() Extrae y elimina un elemento aleatorio
remove() Elimina un elemento específico; lanza error si no existe
symmetric_difference() Devuelve elementos únicos de cada conjunto
symmetric_difference_update() Actualiza el conjunto con la diferencia simétrica
union() Combina elementos de múltiples conjuntos
udpate() Incorpora elementos de otros iterables
len() Devuelve el número total de elementos

Etiquetas: Python conjuntos estructuras de datos operaciones de conjuntos métodos de conjuntos

Publicado el 10-3 16:48