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:

filter(función, iterable)
  • función: Es la función que se aplica a cada elemento del iterable. Esta función debe devolver True o False. Los elementos que devuelvan True se 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:

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:

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

numeros_pares = list(filter(lambda x: x % 2 == 0, numeros))
print(numeros_pares)

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.