El método filter() filtra la secuencia dada con la ayuda de una función que prueba que cada elemento de la secuencia sea verdadero o no.
Sintaxis del filtro Python()
El método filter() en Pitón tiene la siguiente sintaxis:
Sintaxis: filtro (función, secuencia)
Parámetros:
10 de 1 millón
- función: Función que prueba si cada elemento de una secuencia es verdadero o no.
- secuencia: secuencia que debe filtrarse, pueden ser conjuntos, listas, tuplas o contenedores de cualquier iterador.
Devoluciones: un iterador que ya está filtrado.
Ejemplos de funciones de filtro de Python
Veamos algunos ejemplos de la función filter() en Python.
Función de filtro de Python con una función personalizada
En este ejemplo, estamos usando la función de filtro junto con una función personalizada. divertido() para filtrar vocales del Lista de Python .
Pitón
# function that filters vowels> def> fun(variable):> >letters>=> [>'a'>,>'e'>,>'i'>,>'o'>,>'u'>]> >if> (variable>in> letters):> >return> True> >else>:> >return> False> # sequence> sequence>=> [>'g'>,>'e'>,>'e'>,>'j'>,>'k'>,>'s'>,>'p'>,>'r'>]> # using filter function> filtered>=> filter>(fun, sequence)> print>(>'The filtered letters are:'>)> for> s>in> filtered:> >print>(s)> |
>
>
mvc en marco de primavera
Producción:
The filtered letters are: e e>
Función de filtro en Python con Lambda
La función Python filter() se usa normalmente con funciones lambda . En este ejemplo, utilizamos la función lambda para filtrar los números pares e impares de una lista.
Python3
# a list contains both even and odd numbers.> seq>=> [>0>,>1>,>2>,>3>,>5>,>8>,>13>]> # result contains odd numbers of the list> result>=> filter>(>lambda> x: x>%> 2> !>=> 0>, seq)> print>(>list>(result))> # result contains even numbers of the list> result>=> filter>(>lambda> x: x>%> 2> =>=> 0>, seq)> print>(>list>(result))> |
>
powershell menor o igual a
>
Producción:
[1, 3, 5, 13] [0, 2, 8]>
Función de filtro en Python con Lambda y función personalizada
En este programa, usaremos una función personalizada es_múltiple_de_3() así como una función lambda. La función filter() se usa para aplicar esta función a cada elemento de la lista de números, y la función lambda se usa para iterar sobre cada elemento de la lista antes de aplicar la condición. De esta forma, podemos realizar operaciones adicionales en cada elemento antes de aplicar la condición.
Python3
# Define a function to check> # if a number is a multiple of 3> def> is_multiple_of_3(num):> >return> num>%> 3> =>=> 0> # Create a list of numbers to filter> numbers>=> [>1>,>2>,>3>,>4>,>5>,>6>,>7>,>8>,>9>,>10>]> # Use filter and a lambda function to> # filter the list of numbers and only> # keep the ones that are multiples of 3> result>=> list>(>filter>(>lambda> x: is_multiple_of_3(x), numbers))> # Print the result> print>(result)> |
>
>
atajo en mayúsculas excelProducción
[3, 6, 9]>
Análisis de complejidad del tiempo.
- La función de filtro se utiliza para filtrar la lista de números y aplica la función lambda a cada elemento de la lista. La complejidad temporal de la función de filtro es O (n), donde n es el número de elementos de la lista.
- La complejidad temporal de la función lambda es constante, O(1), ya que solo realiza una única operación aritmética. Por lo tanto, la complejidad temporal general del programa es O (n).
Análisis del espacio auxiliar
El programa utiliza una lista para almacenar los números filtrados, por lo que la complejidad del espacio es proporcional a la cantidad de números filtrados. En el peor de los casos, si todos los números son múltiplos de 3, la lista filtrada tendrá n/3 elementos. Por lo tanto, la complejidad espacial es O(n/3), lo que se simplifica a O(n) en notación O grande.