Mi objetivo es recorrer la diferencia de dos listas
Intenté un código bodge para escribir a - b de la siguiente manera
for i in a:
if i in b:
continue
#statements
Me preguntaba si había una forma más pitónica / eficiente de hacer esto.
3 respuestas
Puede usar sets, para ver diferencia:
a = [1, 2, 3, 4, 5]
b = [2, 4, 6]
a = set(a)
b = set(b)
for i in a.difference(b):
print(i)
# even supports the arithmetic syntax :D
for i in a - b:
print(i)
Lo que tienes está bien. Si se opone a la declaración continue
, puede iterar sobre un generador:
for i in (x for x in a if x not in b):
Aunque eso podría decirse que es peor en términos de legibilidad.
En términos de conjuntos, los elementos en a
pero no en b
serían la diferencia del conjunto, por lo tanto, esto sería
for i in set(a).difference(b):
# statements
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.