"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo uso la lógica if/else dentro de las listas de comprensión de Python?

¿Cómo uso la lógica if/else dentro de las listas de comprensión de Python?

Publicado el 2024-12-21
Navegar:492

How Do I Use if/else Logic within Python List Comprehensions?

Comprensión de listas con if/else: sintaxis y uso

Cuando se trabaja con listas por comprensión en Python, se suele incorporar lógica if/else para manejar operaciones condicionales. Este artículo aborda la sintaxis correcta para tales escenarios.

Una tarea común es crear una lista basada en una secuencia fuente, con el siguiente bucle for que contiene una construcción if/else:

results = []
for x in xs:
    results.append(f(x) if x is not None else '')

Este código agrega '' a la lista de resultados si x es Ninguno y, de lo contrario, calcula f(x). El resultado deseado también se puede lograr usando una lista por comprensión, pero con un ajuste necesario en la sintaxis:

results = [f(x) if x is not None else '' for x in xs]

La diferencia clave radica en el orden de las cláusulas if y else dentro de la lista de comprensión. La sintaxis correcta requiere colocar la cláusula if antes de la parte for, seguida de la cláusula else.

En general, la sintaxis para una lista por comprensión con una condición if/else es:

[f(x) if condition else g(x) for x in sequence]

Para listas por comprensión que involucran solo condiciones if para filtrar elementos de la secuencia fuente, la sintaxis es:

[f(x) for x in sequence if condition]

Tenga en cuenta que las expresiones condicionales, utilizadas en la sintaxis if/else de las listas por comprensión, son distintas de la construcción if empleada para filtración. Las expresiones condicionales permiten elegir entre dos expresiones basadas en una condición, similar al operador ternario ?: que se encuentra en otros idiomas. Por ejemplo:

value = 123
print(value, 'is', 'even' if value % 2 == 0 else 'odd')

Este ejemplo imprime si el valor es par o impar usando una expresión condicional.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3