PyQuiz 28 – Intersección de sets en Python

El reto
a = {1, 2, 3}
b = {2, 3, 4}
print(a & b)¿Cuál es el resultado?
- a) {2, 3}
- b) {1, 2, 3, 4}
- c) {1, 4}
Piensa tu respuesta antes de seguir leyendo…
Concepto: Intersección de sets
Los conjuntos (set) en Python son colecciones sin orden y sin duplicados. Soportan las operaciones clásicas de la teoría de conjuntos: unión, intersección, diferencia y diferencia simétrica, disponibles tanto con operadores simbólicos como con métodos.
La intersección (& o .intersection()) devuelve un nuevo conjunto con los elementos que están presentes en ambos conjuntos simultáneamente. Si un elemento está en a pero no en b, no aparece en la intersección, y viceversa.
Los conjuntos son ideales para eliminar duplicados de una lista, comprobar membresía de forma eficiente (O(1) en promedio) y realizar operaciones de filtrado matemático sobre colecciones de datos.
Paso a paso
a = {1, 2, 3}— se crea el conjuntoacon los elementos 1, 2 y 3.b = {2, 3, 4}— se crea el conjuntobcon los elementos 2, 3 y 4.a & b— se calcula la intersección: ¿qué elementos están en ambos conjuntos? El1solo está ena. El4solo está enb. El2y el3están en los dos.print(a & b)— se imprime{2, 3}.
📥 Llévate el cheatsheet de Python (gratis)
PDF de 6 páginas con lo esencial: tipos, condicionales, bucles, estructuras de datos, funciones y los errores que más vas a cometer. Para tener al lado mientras programas.
Sin spam. Te apuntas a la lista, descargas el cheatsheet y recibes contenido de Python cada semana.
Solución
Respuesta correcta: A) {2, 3}
& es la intersección: elementos comunes a ambos sets. Solo 2 y 3 están en los dos.
Sabías que…
Python ofrece cuatro operaciones de conjunto con operadores simbólicos y métodos equivalentes:
a = {1, 2, 3}
b = {2, 3, 4}
# Intersección: elementos en ambos
print(a & b) # {2, 3}
print(a.intersection(b)) # {2, 3}
# Unión: todos los elementos
print(a | b) # {1, 2, 3, 4}
print(a.union(b)) # {1, 2, 3, 4}
# Diferencia: en a pero no en b
print(a - b) # {1}
print(a.difference(b)) # {1}
# Diferencia simétrica: en uno u otro, pero no en ambos
print(a ^ b) # {1, 4}
print(a.symmetric_difference(b)) # {1, 4}
# Caso práctico: usuarios en común
grupo1 = {'Ana', 'Luis', 'Marta'}
grupo2 = {'Luis', 'Marta', 'Carlos'}
print(grupo1 & grupo2) # {'Luis', 'Marta'}Prueba tú mismo
Dados a = {1, 2, 3, 4} y b = {3, 4, 5, 6}, ¿qué devuelven a - b y a ^ b?
Más PyQuizzes en elpythonista.com/pyquizzes
Tutorial relacionado: Conjuntos en Python
¿Quieres aprender Python en orden, no a saltos?
Esto que has leído es solo una pieza. En El Pythonista lo verás todo encadenado: 11 módulos, 37+ horas de vídeo, 734 actividades y un proyecto real (MovieTracker) que crece contigo desde la primera variable hasta el deploy a producción.
37+ horas · 734 actividades · Proyecto real · Acceso de por vida · 14 días de garantía
