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.

Declaraciones condensadas de Python “if”

Estoy experimentando con cómo condensar las declaraciones “if” dentro de mi código. Tengo un proyecto en el que estoy trabajando que tiene varias declaraciones “if” (demasiadas para hacer un seguimiento) y quiero encontrar una manera de condensarlas. Obviamente, esto implica un bucle for, pero tengo problemas para agregar operaciones adicionales dentro de este bucle.

Se me ocurrió el siguiente ejemplo práctico para demostrar mi problema:

num=6

if_options = [num==5, num==6]

for i in range(len(if_options)):
    if if_options[i]:
        print(num)

Quiero agregar un componente adicional al código. Este componente adicional ejecutará una operación dentro de la declaración “if”. Vea el siguiente ejemplo práctico no funcionando como un marco para lo que estoy tratando de lograr:

num=6

if_options = [num==5, num==6]
operations = [num=num+1, num=num-1]

for i in range(len(if_options)):
    if if_options[i]:
        operations[i]
        print(num)

Por alguna razón, no ejecutará la parte de operación del código y falla con un error de sintaxis. No me permite declarar el comando “num=num+1” (sin comillas) dentro de una lista, sin embargo, esta declaración es necesaria para ejecutar el comando. Siento que me falta algo pequeño y debería ser fácil de solucionar. ¡Gracias de antemano!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para resolver el problema, se pueden utilizar funciones lambda que se utilizan para crear funciones pequeñas y anónimas. Así es como puedes modificar tu código para resolver el problema:

    num=6
    
    if_options = [num==5, num==6]
    operations = [lambda: num+1, lambda: num-1]
    
    for i in range(len(if_options)):
        if if_options[i]:
            num = operations[i]()
            print(num)
    

    Aquí, hemos reemplazado las funciones regulares en la lista operations con funciones lambda. Luego, llamamos a las funciones lambda usando () para ejecutar el bloque de código asociado. De esta manera, podemos ejecutar la operación necesaria y asignar el resultado nuevamente a la variable num.

    ¡Espero que esto ayude!

Comments are closed.