Función filter() en Python
La función
filter()
en Python se utiliza para filtrar elementos de una secuencia (como una lista o una tupla) utilizando una función de filtro específica. Devuelve un iterable (un objeto iterable que puede ser convertido a una lista u otra estructura de datos) que contiene solo los elementos que cumplen con la condición definida en la función de filtro.
Sintaxis de la función filter() en Python
La sintaxis general de la función
filter()
es la siguiente:
Ejemplo
iterable = [1, 2, 3]
filter(función, iterable)
print(iterable)
-
función: Es la función que se aplica a cada elemento deliterable. Esta función debe devolverTrueoFalse. Los elementos que devuelvanTruese incluirán en el resultado. -
iterable: La secuencia de elementos que se va a filtrar.
Aquí tienes una lección detallada sobre cómo usar la función
filter()
en Python:
Ejemplo de la función filter() en Python
Supongamos que tenemos una lista de números y queremos filtrar solo los números pares:
Ejemplo
def es_par(numero):
return numero % 2 == 0
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
numeros_pares = list(filter(es_par, numeros))
print(numeros_pares)
En este ejemplo, definimos una función
es_par()
que toma un número y devuelve
True
si es par y
False
si no lo es. Luego, usamos
filter()
para aplicar esta función a la lista de números y obtener una nueva lista llamada
numeros_pares
que contiene solo los números pares.
Uso de Funciones Lambda con filter() en Python
También puedes usar funciones lambda con
filter()
. Por ejemplo, para lograr el mismo resultado que en el ejemplo anterior:
Ejemplo
iterable = [1, 2, 3]
filter(función, iterable)
print(iterable)
En este caso, hemos utilizado una función lambda en lugar de la función
es_par()
.
Convertir el Resultado en una Lista
La función
filter()
devuelve un iterable. Para obtener una lista con los elementos filtrados, generalmente utilizamos
list()
para convertir el resultado en una lista, como se hizo en los ejemplos anteriores.
Filtrar Elementos en Base a una Condición
Puedes ajustar la función de filtro para que cumpla con cualquier condición que necesites. Puede ser una comparación numérica, una comparación de cadenas, o cualquier otro tipo de evaluación. La función de filtro debe devolver
True
para los elementos que deseas incluir en el resultado y
False
para los que deseas excluir.
Trabajar con Diferentes Tipos de Iterables
La función
filter()
puede ser utilizada con varios tipos de iterables, no solo listas. Puedes aplicarla a tuplas, conjuntos u otros objetos iterables.
Almacenar el Resultado en un Generador
En lugar de convertir el resultado en una lista, puedes almacenarlo en un generador si deseas ahorrar memoria y solo acceder a los elementos cuando sea necesario. En lugar de
list(filter(…))
, puedes usar
filter(…)
directamente.
La función
filter()
es una herramienta útil para filtrar elementos de secuencias en Python, y puedes personalizar la función de filtro según tus necesidades específicas. Te permite crear código más limpio y conciso al aplicar condiciones a tus datos de manera eficiente.
Practica Función filter() en Python en el editor
Pon en práctica lo aprendido con nuestro editor Python interactivo. Cada ejercicio incluye el código de partida y un botón para abrirlo en una nueva pestaña, donde puedes modificarlo y ejecutarlo.
Ejercicio: Usar print()
Supongamos que tenemos una lista de números y queremos filtrar solo los números pares.
Ejercicio: Función lambda
También puedes usar funciones lambda con filter() . Por ejemplo, para lograr el mismo resultado que en el ejemplo anterior.
Ejemplo
def es_par(numero):
return numero % 2 == 0
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
numeros_pares = list(filter(es_par, numeros))
print(numeros_pares)