Coleccinoes de tipo conjunto
1. Qué es un conjunto? #
Un conjunto es una colección de elementos únicos y no ordenados en Python. Esto significa que:
- No puede haber elementos duplicados en un conjunto.
- No tiene un orden específico, por lo que los elementos no están indexados.
Los conjuntos son útiles cuando necesitas almacenar elementos y te importa más que sean únicos que el orden en el que están.
2. Cómo crear un conjunto #
Puedes crear un conjunto de varias maneras en Python:
-
Usando llaves
{}:1frutas = {"🍎 manzana", "🍐 pera", "🍒 cereza"} 2print(frutas) # No hay orden específicoSalida de consola {'🍐 pera', '🍎 manzana', '🍒 cereza'} -
Usando la función
set():1numeros = set([1, 2, 3, 4, 4, 5]) # Elimina duplicados automáticamente 2print(numeros)Salida de consola {1, 2, 3, 4, 5}
3. Características principales de los conjuntos #
-
Elementos únicos: No puede haber duplicados en un conjunto.
1frutas = {"🍎 manzana", "🍐 pera", "🍒 cereza", "🍎 manzana"} 2print(frutas) # La "manzana" duplicada se elimina automáticamenteSalida de consola {'🍎 manzana', '🍐 pera', '🍒 cereza'} -
No indexados: No puedes acceder a los elementos de un conjunto usando un índice como harías con una lista.
1frutas = {"🍎 manzana", "🍐 pera", "🍒 cereza"} 2print(frutas[0]) # Esto daría un error porque los conjuntos no tienen índicesSalida de consola Traceback (most recent call last): print(frutas[0]) TypeError: 'set' object is not subscriptable
4. Operaciones con conjuntos #
Los conjuntos permiten realizar operaciones matemáticas como unión, intersección, diferencia, etc.
-
Unión (
union()o|): Combina los elementos de dos conjuntos, eliminando duplicados.1conjunto1 = {1, 2, 3} 2conjunto2 = {3, 4, 5} 3union = conjunto1.union(conjunto2) # O también puedes usar conjunto1 | conjunto2 4print(union)Salida de consola {1, 2, 3, 4, 5} -
Intersección (
intersection()o&): Devuelve solo los elementos que están en ambos conjuntos.1conjunto1 = {1, 2, 3} 2conjunto2 = {3, 4, 5} 3interseccion = conjunto1.intersection(conjunto2) 4print(interseccion)Salida de consola {3}otra forma
1conjunto1 = {1, 2, 3} 2conjunto2 = {3, 4, 5} 3interseccion = conjunto1 & conjunto2 4print(interseccion)Salida de consola {3} -
Diferencia (
difference()o-): Devuelve los elementos que están en el primer conjunto pero no en el segundo.1conjunto1 = {1, 2, 3} 2conjunto2 = {3, 4, 5} 3diferencia = conjunto1.difference(conjunto2) # O también puedes usar conjunto1 - conjunto2 4print(diferencia)Salida de consola {1, 2}otra forma
1conjunto1 = {1, 2, 3} 2conjunto2 = {3, 4, 5} 3diferencia = conjunto1 - conjunto2 4print(diferencia)Salida de consola {1, 2} -
Diferencia simétrica (
symmetric_difference()o^): Devuelve los elementos que están en uno de los conjuntos, pero no en ambos.1conjunto1 = {1, 2, 3} 2conjunto2 = {3, 4, 5} 3diferencia_simetrica = conjunto1.symmetric_difference(conjunto2) 4print(diferencia_simetrica)Salida de consola {1, 2, 4, 5}otra forma
1conjunto1 = {1, 2, 3} 2conjunto2 = {3, 4, 5} 3diferencia_simetrica = conjunto1 ^ conjunto2 4print(diferencia_simetrica)Salida de consola {1, 2, 4, 5}
5. Modificar un conjunto #
Puedes agregar o eliminar elementos de un conjunto:
-
Agregar elementos (
add()):1frutas = {"🍎 manzana", "🍌 banana"} 2frutas.add("🍊 naranja") 3print(frutas) # No hay orden específicoSalida de consola {'🍎 manzana', '🍊 naranja', '🍌 banana'} -
Eliminar elementos (
remove()odiscard()):1frutas = {"🍎 manzana", "🍌 banana"} 2frutas.remove("🍌 banana") 3print(frutas)Salida de consola {'🍎 manzana'}La diferencia entre
remove()ydiscard()es queremove()generará un error si el elemento no existe en el conjunto, mientras quediscard()no lo hará.
Resumen del tema
Conceptos clave #
- Estructura
set: colección desordenada, mutable y sin elementos duplicados, creada con{elem1, elem2}oset(iterable)(un conjunto vacío se crea conset(), ya que{}crea un diccionario). - Operaciones de Álgebra de Conjuntos:
- Unión:
A | BoA.union(B). - Intersección:
A & BoA.intersection(B). - Diferencia:
A - BoA.difference(B). - Diferencia simétrica:
A ^ BoA.symmetric_difference(B).
- Unión:
- Manipulación de Elementos:
.add(elem),.remove(elem)(lanzaKeyErrorsi no existe) y.discard(elem)(seguro, no lanza error).
Qué debes recordar #
Usa conjuntos (set) para eliminar duplicados automáticamente y realizar operaciones algebraicas rápidas (unión, intersección, diferencia).