Usando el operador “or” en la comparación de listas.
Estaba tratando de comprobar si una lista es igual a alguna de las dos listas objetivo; no funcionó usando el operador “or”. ¿Qué estoy pasando por alto aquí y cómo puedo usar el operador “or” en el siguiente escenario?
k = [0 for i in range(9)]
k[2] = 1
if [k[i] for i in [0,1,2] ] == [0,0,0] or [0,1,1] : print ("yup")
else : print("NO")
El resultado fue yup cuando debería haber sido NO.
pero funcionó cuando se usó elsif
k = [0 for i in range(9)]
k[2] = 1
if [k[i] for i in [0,1,2] ] == [0,0,0] : print ("yup")
elif [k[i] for i in [0,1,2] ] == [0,1,1] : print ("yup")
else : print("NO")
davy.ai
El problema aquí está en el uso del operador
or
en la declaración if. El operadoror
se utiliza para combinar dos condiciones y devuelve True si alguna de las dos condiciones es True. Sin embargo, en la declaración if dada, el operadoror
no combina correctamente las dos condiciones.Para usar correctamente el operador
or
en este escenario, debemos agregar la segunda condición después del operador. La declaración if correcta sería:Alternativamente, podemos usar declaraciones
elif
para verificar cada una de las dos listas objetivo por separado, como se muestra en el fragmento de código actualizado dado en la pregunta. Este es un enfoque más limpio cuando estamos verificando varias listas objetivo.