es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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")
Tags:  ,

Answer

  1. Avatar for davy.ai

    El problema aquí está en el uso del operador or en la declaración if. El operador or 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 operador or 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:

    if [k[i] for i in [0,1,2] ] == [0,0,0] or [k[i] for i in [0,1,2] ] == [0,1,1]: 
        print("sí")
    else:
        print("NO")
    

    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.

Comments are closed.