La función filter() incorporada de Python también es poderosa; para realizar procedimientos de filtrado de datos en secuencias como listas, tuplas y cadenas. La función filter() se utiliza para aplicar una función a cada elemento de un iterable (como una lista o tupla) y devolver otro iterable que contenga solo los elementos para los cuales la función devuelve True. En este sentido, filter() nos permite filtrar elementos de una agrupación en función de alguna condición. El primer argumento puede ser Ninguno si la función no está disponible y devuelve solo elementos que son Verdaderos.
Sintaxis:
filter (function, iterable)
Parámetros
función: Es una función. Si se establece en Ninguno, devuelve solo los elementos que son Verdaderos.
Iterable: Cualquier secuencia iterable como lista, tupla y cadena.
Ambos parámetros son obligatorios.
Devolver
Devuelve lo mismo que devuelve la función.
Veamos algunos ejemplos de la función filter() para comprender su funcionalidad.
Ejemplo 1 de función de filtro de Python()
Este ejemplo simple devuelve valores superiores a 5 usando la función de filtro. Vea el siguiente ejemplo.
Código
# Python filter() function example def filterdata(x): if x>5: return x # Calling function result = filter(filterdata,(1,2,6)) # Displaying result print(list(result))
Producción:
[6]
El código define una función llamada filterdata que toma un único argumento x. En esta función, verificamos suponiendo que x es mayor que 5 y, siempre que esto sea cierto, imprimimos x. Luego, llamamos a la función filter(), pasando filterdata como argumento principal y una tupla (1, 2, 6) como argumento posterior. La función filter() aplica la función filterdata() a cada elemento de la tupla y devuelve un iterador que contiene solo los elementos que cumplen la condición x > 5. Por último, convertimos el iterador en una lista utilizando la función list() e imprimir el resultado.
Los siguientes son un par de ejemplos adicionales de cómo utilizar el método filter() en Python:
Ejemplo 2:
Filtrar cadenas vacías de una lista:
Código
# Python filter() function example strings = [ '', 'hello', '', 'world', '' ] # Using filter() to remove empty strings from the list result = list(filter(lambda x: x != '', strings)) # Printing the result print(result)
Producción:
[ 'hello', 'world' ]
En este ejemplo, la función lambda verifica en caso de que cada cadena no esté vacía probando asumiendo que es equivalente a la cadena vacía (''). La función filter() devuelve otro iterable que contiene solo las cadenas no vacías.
Ejemplo 3:
Filtrar números negativos de una lista:
Código
# Python filter() function example numbers = [ 1, -2, 3, -4, 5, -6 ] # Using filter() to remove negative numbers from the list result = list(filter(lambda x: x >= 0, numbers)) # Printing the result print(result)
Producción:
[1, 3, 5]
En este ejemplo, la función lambda verifica que cada número no sea negativo probando en caso de que sea más prominente que cero (0) o equivalente a él. La función filter() devuelve otro iterable que contiene solo los números no negativos.
Ejemplo 4:
Filtrar duplicados de una lista:
Código
# Python filter() function example numbers = [ 1, 2, 3, 2, 4, 3, 5 ] # Using filter() to remove duplicate numbers from the list result = list(filter(lambda x: numbers.count(x) == 1, numbers)) # Printing the result print(result)
Producción:
[ 1, 4, 5 ]
En este ejemplo, la función lambda verifica en caso de que cada número aparezca solo una vez en la lista de números contando la frecuencia con la que aparece (numbers.count(x)) y probando en caso de que el recuento sea equivalente a 1. La función filter() devuelve otro iterable que contiene solo los números únicos.
Nota: Es significativo que en Python 3, la función filter() devuelve un iterable, y eso implica que realmente deseas cambiarlo completamente a una lista (como se muestra en los ejemplos anteriores) para involucrarlo como una lista. No obstante, en Python 2, la función filter() devuelve una lista, por supuesto.
Conclusión:
Finalmente, la función filter() es una poderosa herramienta para la manipulación de datos en Python. Al filtrar un iterable según una condición predefinida, puede separar rápida y eficazmente los datos que realmente desea. También puede utilizar filter() en combinación con otras funciones de Python para realizar manipulaciones de datos más desconcertantes.