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]
Artículo relacionado - Python Function
- Salir de una función en Python
- Argumentos opcionales en Python
- Ajustar una función de paso en Python
- Argumentos en la función main() en Python
- Función de envío en generadores de Python
- Función de identidad integrada en Python