…o cómo seleccionar los elementos (únicos) que no están en otra lista cuando programamos en Python.
El otro día, implementando un comando para mi «colección», me encontré que necesitaba dejar en una lista de valores numéricos los que no se repetían en otra y, aunque sencillo, tuve que hacer alguna que otra prueba hasta encontrar la solución (me negaba a hacer un recorrido o loop) por lo que la dejo aquí para la próxima vez que lo necesite 😅
Y es que, aunque sencillo, tengo tal «jaleo» de lenguajes en la cabeza (¿cómo era eso de quien mucho abarca…?) que cosas en teoría simples como ésta, me hacen dudar (sí, lo sé, lo sé… ya voy cumpliendo años y tengo menos «reflejos» 🤣)
El truco es realmente sencillo:
- basta convertir las listas en conjuntos y utilizar el operador de diferencia (o resta)
- y convertimos (nuevamente) el conjunto resultante en una lista para poder seguir trabajando con élla como hasta ese momento
a=[3,2,5,4]
b=[1,5,3,6]
list(set(a)-set(b))
Como puedes intuir, la diferencia entre las dos listas en python anteriores es [2,4] como se observa en la siguiente captura
Conclusión
Forma sencilla ¿y rápida? de obtener los elementos que no se repiten en otra lista de valores en Python que espero te resulte de utilidad.
Y tú…
- ¿Qué haces para calcular la diferencia entre dos listas en Python?
- ¿Conoces otra forma más eficiente de hacerlo?
- ¿Qué operaciones con listas en Python te gustaría ver por aquí?
- …
Me pasa todo el tiempo, cuando tengo una necesidad recurro a Python, nunca me decepciona.
Mis scripts hacen su trabajo bien y rápido. Pero siempre te queda esa duda de … ¿Se puede hacer mejor? y es que Python es un lenguaje muy vasto y vivo.
Es complicado recordar esos detalles que pueden hacer una diferencia.
Bien bajado ese balón, haciendo una operación básica de conjuntos.
¡Saludos!.
Me gustaMe gusta
Gracias monstruo… Python al final es una navaja suiza que suele venir muy bien para todo y todos a pesar de los constantes cambios que va sufriendo (y que no creo llegar a aprovechar la mayoría de las veces limitándome al subconjunto de cosas que ya sé hacer con él)
Cada día lo uso más frente a bash para cualquier automatización y y luego me alegro porque además tengo la ventaja de que es multiplataforma (por mucho que algunos cuenten con WSL 😉 )
Me gustaMe gusta