Menu
Coddy logo textTech

La función Filter

Parte de la sección Lógica y flujo del Journey de Python de Coddy. Lección 73 de 78.

La función filter() recibe dos elementos principales:

  1. Una función (que contiene instrucciones para comprobar cada elemento)
  2. Una secuencia de elementos (como una lista o cualquier colección de elementos)

Examina cada elemento de tu secuencia, uno por uno, y solo conserva los que pasan la prueba de la función (cuando la función devuelve True).

Por ejemplo:

def is_even(n):
    return n % 2 == 0

numbers = [1, 2, 3, 4, 5, 6]  # Esto es solo una lista de números
even_numbers = filter(is_even, numbers)
print(list(even_numbers))
# Salida: [2, 4, 6]

Qué sucedió aquí:

  • Tenemos una lista de números: [1, 2, 3, 4, 5, 6]
  • La función filter toma cada número, uno a la vez
  • Pasa cada número a través de nuestra función is_even
  • Si la función devuelve True, conserva ese número
  • Si la función devuelve False, descarta ese número

Puedes pensarlo como un colador:

  1. El número 1 entra → is_even devuelve False → número descartado
  2. El número 2 entra → is_even devuelve True → número conservado
  1. El número 3 entra → is_even devuelve False → el número se descarta Y así sucesivamente...

También puedes usar una función rápida de una sola línea (llamada lambda) en lugar de definir una función independiente:

numbers = [1, 2, 3, 4, 5, 6]
even_numbers = filter(lambda n: n % 2 == 0, numbers)
print(list(even_numbers))
# Salida: [2, 4, 6]

La función filter funciona con cualquier colección de elementos, no just con números. Aquí hay un ejemplo con cadenas:

words = ["apple", "banana", "cherry", "date"]
long_words = filter(lambda word: len(word) > 5, words)
print(list(long_words))
# Output: ["banana", "cherry"]
challenge icon

Desafío

Fácil

Crea una función llamada get_long_strings que reciba como argumento una lista de cadenas strings. La función debe usar la función filter() junto con una función lambda para seleccionar las cadenas que tengan una longitud mayor que 5. La función debe devolver una lista que contenga las cadenas seleccionadas.

Pruébalo tú mismo

def get_long_strings(strings):
    # Usa filter() con una función lambda para seleccionar cadenas con longitud mayor que 5
    # Reemplaza la lista vacía de abajo con esa expresión
    long_strings = []
    
    # Devuelve la lista de cadenas seleccionadas
    return list(long_strings)
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 Lógica y flujo

Practica por tu cuenta: Compilador de Python online