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!
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:
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 variablenum
.¡Espero que esto ayude!