Menu
Coddy logo textTech

Añadir condiciones

Parte de la sección Logic & Flow del Journey de Python de Coddy — lección 52 de 78.

Las comprensiones de listas se vuelven aún más potentes cuando se añade lógica condicional. Esto permite crear nuevas listas basadas en listas existentes, filtrando y transformando elementos según condiciones específicas.

La sintaxis para añadir una condición a una comprensión de lista es:

new_list = [expression for item in iterable if condition]

Aquí tienes un desglose de la sintaxis:

  • new_list: La nueva lista que se creará.
  • expression: El valor que se incluirá en new_list. Esto puede ser una versión modificada de item.
  • for item in iterable: Un bucle que itera sobre cada elemento en el iterable (p. ej., una lista, tupla o rango).
  • item: El elemento actual que se está procesando en el bucle.
  • if condition: Un filtro que determina si el item actual debe incluirse en new_list. La expression solo se evalúa si la condition es True.

Aquí tienes un ejemplo:

numbers = [1, 2, 3, 4, 5, 6]
evens = [n for n in numbers if n % 2 == 0]
print(evens)
# Salida: [2, 4, 6]

En este ejemplo, la comprensión de listas crea una nueva lista llamada evens tomando cada elemento n de la lista numbers e incluyéndolo solo si es par (es decir, n % 2 == 0).

challenge icon

Desafío

Fácil

Crea una función llamada filter_and_square que reciba una lista de números numbers como argumento. La función debe utilizar una comprensión de listas para crear una nueva lista que incluya los cuadrados de solo los números positivos de la lista original. La función debe devolver la nueva lista.

Hoja de referencia

Las comprensiones de listas con lógica condicional le permiten filtrar y transformar elementos basándose en condiciones especificadas:

new_list = [expression for item in iterable if condition]
  • expression: El valor que se incluirá en la nueva lista
  • for item in iterable: Iterar sobre cada elemento
  • if condition: Filtro que determina si el elemento debe ser incluido

Ejemplo - filtrado de números pares:

numbers = [1, 2, 3, 4, 5, 6]
evens = [n for n in numbers if n % 2 == 0]
print(evens)
# Salida: [2, 4, 6]

Pruébalo tú mismo

def filter_and_square(numbers):
    # Escribe el código aquí
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Logic & Flow