El método filter() y las funciones Lambda en Python

Vaibhav Vaibhav 8 abril 2022
El método filter() y las funciones Lambda en Python

A menudo, cuando se trabaja con estructuras de datos iterables como matrices, listas y tuplas, tenemos que realizar operaciones de filtrado sobre ellas.

El filtrado se refiere a eliminar los valores que coinciden con una condición particular. Se puede realizar el filtrado iterando sobre el valor y el valor de la estructura de datos iterables usando un bucle for o un bucle while y comprobando si el elemento cumple la condición o no.

Dado que esta es una tarea común, el lenguaje de programación Python tiene un método incorporado, filter(). Este método necesita una función para realizar la filtración.

Generalmente, los métodos lambda se consideran para este trabajo ya que son sencillos de escribir. Este artículo mostrará cómo usar el método filter() y las funciones lambda juntas en Python.

El método filter() y las funciones lambda en Python

El método de filter es un método integrado en el lenguaje de programación Python que se utiliza para filtrar elementos de un iterable que cumplen una determinada condición. Una función representa la condición, y los valores para los que la función devuelve True se consideran en el resultado.

El filter() acepta dos parámetros; una función para filtrar que devuelve un valor booleano y un objeto iterable como una lista o una tupla. El método filter() es un iterador u objeto filter.

Debemos convertir el iterador en una lista o una tupla utilizando el método list() o el método tuple(). Las funciones lambda en línea y funciones anónimas en Python.

Estas funciones se pueden utilizar junto con el método de filter.

Las funciones lambda tienen la siguiente sintaxis.

lambda < parameters > : < expression >

Los parámetros deben estar separados por comas y la expresión debe devolver un resultado booleano (True o False).

Entendamos cómo usar los dos juntos usando un ejemplo simple. Consulte el siguiente código de Python para lo mismo.

array = [11, 23, 13, 4, 15, 66, 7, 8, 99, 10]
new_array = list(filter(lambda x: x <= 20, array))
print("Old Array:", array)
print("New Array:", new_array)

Producción :

Old Array: [11, 23, 13, 4, 15, 66, 7, 8, 99, 10]
New Array: [11, 13, 4, 15, 7, 8, 10]

El código de Python anterior filtra todos los valores de la lista de enteros, array, que es menor o igual a 20.

Cada valor de la lista se pasa a la función lambda. Si devuelve True, el valor se suma al resultado; de otra forma no.

Una vez que se obtiene el resultado en un iterador, se convierte en una lista usando el método incorporado list(). Por último, ambas matrices se imprimen en la consola.

Ejemplos

Los siguientes son algunos ejemplos para entender el uso del método filter() y las funciones lambda juntas.

Filtrar todos los números pares de una lista de enteros

array = [1, 2, 3, 4, 5, 66, 77, 88, 99, 100]
new_array = list(filter(lambda x: x % 2 == 0, array))
print("Old Array:", array)
print("New Array:", new_array)

Producción :

Old Array: [1, 2, 3, 4, 5, 66, 77, 88, 99, 100]
New Array: [2, 4, 66, 88, 100]

Filtrar todos los números impares de una lista de enteros

array = [1, 2, 3, 4, 5, 66, 77, 88, 99, 100]
new_array = list(filter(lambda x: x % 2 == 1, array))
print("Old Array:", array)
print("New Array:", new_array)

Producción :

Old Array: [1, 2, 3, 4, 5, 66, 77, 88, 99, 100]
New Array: [1, 3, 5, 77, 99]

Filtrar todas las cadenas de longitud 5 de una lista de cadenas

array = [
    "hello",
    "python",
    "world",
    "walking",
    "sleep",
    "shelter",
    "food",
]
new_array = list(filter(lambda x: len(x) == 5, array))
print("Old Array:", array)
print("New Array:", new_array)

Producción :

Old Array: ['hello', 'python', 'world', 'walking', 'sleep', 'shelter', 'food']
New Array: ['hello', 'world', 'sleep']

Filtrar todos los números en el rango [10, 20] de una lista de enteros

array = [11, 23, 13, 4, 15, 66, 7, 8, 99, 10]
new_array = list(filter(lambda x: 10 <= x <= 20, array))
print("Old Array:", array)
print("New Array:", new_array)

Producción :

Old Array: [11, 23, 13, 4, 15, 66, 7, 8, 99, 10]
New Array: [11, 13, 15, 10]
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Artículo relacionado - Python Function

Artículo relacionado - Python Lambda