Supón que registras cada visita a una página: ["Ana", "Leo", "Ana", "Mia"]. Para contar visitas necesitas conservar repeticiones. Pero para saber qué personas distintas han entrado, los duplicados sobran.
Ese segundo problema es terreno natural para un set.
Elegir un set cuando la pregunta sea unicidad, pertenencia o elementos compartidos.
En un set, repetir un valor no lo multiplica
visitas = ["Ana", "Leo", "Ana", "Mia", "Leo"] visitantes = set(visitas) print(len(visitas)) print(len(visitantes))
La lista tiene cinco entradas porque conserva cada visita. El set tiene tres elementos porque cada nombre aparece una sola vez.
No dependas del orden al imprimir un set. Su propósito principal no es representar posiciones, sino pertenencia y unicidad.
La pregunta más natural para un set es «¿está o no está?»
permisos = {"leer", "comentar"}
print("leer" in permisos)
print("borrar" in permisos)La primera comprobación produce True y la segunda False. Cuando solo quieres saber si un valor pertenece a un grupo, esta lectura es muy directa.
Dos grupos pueden compararse sin bucles manuales
Los sets también permiten expresar operaciones de conjuntos. No necesitas memorizarlas todas; quédate con una que resulta intuitiva:
curso_a = {"Ana", "Leo", "Mia"}
curso_b = {"Leo", "Mia", "Noa"}
comunes = curso_a & curso_b
print(len(comunes))& calcula la intersección: los elementos presentes en los dos sets. El resultado contiene a Leo y Mia.
No memorices símbolos por obligación: si todavía no recuerdas &, puedes consultarlo. Lo importante es reconocer que el problema «¿qué valores comparten estos grupos?» encaja bien con sets.
Resuelve tres preguntas que delatan un set
¿Cuántas personas distintas visitaron?
¿“Ana” está entre quienes visitaron?
¿Qué nombres aparecen en dos grupos?
Conjunto vacío: usa set(). {} crea un diccionario vacío.
Crea el set de visitantes únicos, comprueba la pertenencia de Ana y calcula cuántas personas aparecen también en el segundo grupo.
3 True 1
La salida aparecerá aquí.
Necesito una pista
- Convierte
visitasconset(...). - Después las operaciones de pertenencia e intersección ya funcionan de forma natural.
Ver una solución razonada
visitas = ["Ana", "Leo", "Ana", "Mia", "Leo"]
otro_grupo = {"Ana", "Noa"}
visitantes = set(visitas)
print(len(visitantes))
print("Ana" in visitantes)
print(len(visitantes & otro_grupo))El set equivocado: cuando sí te importa el orden o la repetición
No conviertas automáticamente una lista en set solo porque ves duplicados. Si registras posiciones de carrera, historial de compras o una secuencia de pasos, el orden y las repeticiones pueden tener significado. Elimina duplicados solo cuando el problema realmente trate de valores únicos.
Recupera lo anterior · minuto 3
Una agenda necesita conservar contactos en orden, cada contacto tiene nombre/teléfono, y quieres saber qué etiquetas únicas se han usado. ¿Qué estructuras encajan?
Comprobar
Lista para la secuencia de contactos, diccionario para los datos de cada contacto y set para las etiquetas únicas. La elección depende de la pregunta, no de una estructura “mejor”.
La frase que identifica este tipo de colección
Si puedes describir tu necesidad como «quiero saber qué valores distintos hay», «quiero comprobar si este valor pertenece al grupo» o «quiero comparar dos grupos», piensa en un set.
Si sabes explicar por qué una lista de visitas y un set de visitantes responden preguntas diferentes, has entendido la razón de existir de los sets.