¿Qué es filter() y por qué podría ser la función más subestimada de Python?

| Última modificación: 27 de noviembre de 2024 | Tiempo de Lectura: 3 minutos
Premios Blog KeepCoding 2025

Full Stack Developer y Responsable de Formación base en KeepCoding.

Existen joyas de la programación que suelen ser subestimadas o echadas en el olvido. Este es el caso de filter(), una función que puede convertirse en gran aliada si requieres trabajar con datos y no sabes qué incluir y qué descartar. Hoy te enseñaremos cómo es filter(), para qué se usa y por qué es tan subestimada.

filter() en python

¿Qué es filter() en Python?

La función filter() en Python te permite seleccionar elementos específicos de un iterable (como listas, tuplas o conjuntos) en función de un criterio que definas. Para ser específicos, actúa como un filtro literal, reteniendo solo los elementos que cumplen con una condición.

Su sintaxis es así:

filter(función, iterable)
  • función: Una función que define la condición para filtrar. Debe devolver True para los elementos que quieres conservar y False para los que deseas excluir.
  • iterable: El conjunto de datos que será filtrado, como una lista o una tupla.

El resultado es un objeto filter que puedes convertir en una lista, tupla o cualquier otro iterable.

Si aun no te queda claro, seguro con este ejemplo será más entendible: digamos que que tienes una lista de edades y solo quieres conservar aquellas mayores o iguales a 18 años:

edades = [5, 12, 17, 18, 24, 32]

def es_adulto(edad):
return edad >= 18

adultos = filter(es_adulto, edades)

print(list(adultos)) # Salida: [18, 24, 32]

En este ejemplo, filter() aplica la función es_adulto a cada elemento de la lista y devuelve únicamente las edades que cumplen la condición.

¿Por qué es filter() tan poderosa (y subestimada)?

🔴 ¿Quieres Aprender a Programar con Python? 🔴

Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semana

Aunque puedes lograr resultados similares con un bucle for o una comprensión de listas, filter() es en ocasiones mucho mejor por varias razones:

  1. Código más limpio: En lugar de escribir un bloque de bucles y condicionales, puedes condensar la lógica en una sola línea.
  2. Eficiencia: filter() genera los resultados en tiempo real, lo que significa que no ocupa espacio extra en memoria al generar una nueva lista completa.
  3. Legibilidad: Especialmente útil cuando trabajas con datos grandes o condiciones complejas, haciendo que tu código sea más fácil de entender.

¿Para qué se usa filter()?

Entre otras cosas, puedes usar filter() para:

  • Filtrar datos numéricos: Filtra solo los números pares de una lista:
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9]

def es_par(num):
return num % 2 == 0

pares = filter(es_par, numeros)

print(list(pares)) # Salida: [2, 4, 6, 8]
  • Filtrar cadenas: Selecciona palabras que contienen más de 4 letras.
palabras = ["sol", "luna", "estrellas", "cielo", "mar"]

def es_larga(palabra):
return len(palabra) > 4

largas = filter(es_larga, palabras)

print(list(largas)) # Salida: ['estrellas']
  • Combinando filter() con lambda: El uso de funciones lambda con filter() hace que tu código sea aún más compacto:
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9]
pares = filter(lambda num: num % 2 == 0, numeros)

print(list(pares)) # Salida: [2, 4, 6, 8]

Este enfoque elimina la necesidad de definir funciones separadas, ideal para tareas rápidas.

Filter() vs bucles tradicionales: ¿cuál es mejor?

Un bucle for también puede filtrar datos, pero el resultado es más largo y menos eficiente. Considera este ejemplo:

numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9]
pares = []

for num in numeros:
if num % 2 == 0:
pares.append(num)

print(pares) # Salida: [2, 4, 6, 8]

Aunque funcional, este enfoque requiere más líneas y utiliza memoria adicional para almacenar los resultados. Con filter(), el mismo resultado se logra en una sola línea y con mejor optimización.

En Keepcoding te enseñamos variedad de temáticas para que abordes la programación como se debe, con todas las herramientas necesarias para enfrentarte a un mundo laboral en constante crecimiento. Por eso te ofrecemos el bootcamp en programación desde cero, que te ayudará a transformar tu vida en poco tiempo. ¡Únete a la mejor comunidad y da el primer paso ahora!

Noticias recientes del mundo tech

¡CONVOCATORIA ABIERTA!

Aprende a Programar desde Cero

Full Stack Jr. Bootcamp

Clases en Directo | Acceso a +600 empresas | 98,51% empleabilidad

Fórmate con planes adaptados a tus objetivos y logra resultados en tiempo récord.
KeepCoding Bootcamps
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.