A função filter() integrada do Python também é poderosa; para realizar procedimentos de filtragem de dados em sequências como listas, tuplas e strings. A função filter() é utilizada para aplicar uma função a cada elemento de um iterável (como uma lista ou tupla) e retornar outro iterável contendo apenas os elementos para os quais a função traz True de volta. Nesse sentido, filter() nos permite filtrar elementos de um agrupamento com base em alguma condição. O primeiro argumento pode ser None se a função não estiver disponível e retornar apenas elementos que sejam True.
Sintaxe:
filter (function, iterable)
Parâmetros
função: É uma função. Se definido como Nenhum, retornará apenas os elementos que forem Verdadeiros.
Iterável: Qualquer sequência iterável como lista, tupla e string.
Ambos os parâmetros são obrigatórios.
Retornar
Ele retorna o mesmo retornado pela função.
Vamos ver alguns exemplos da função filter() para entender sua funcionalidade.
Filtro Python() Exemplo de Função 1
Este exemplo simples retorna valores superiores a 5 usando a função de filtro. Veja o exemplo abaixo.
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))
Saída:
[6]
O código define uma função chamada filterdata que recebe um único argumento x. Nesta função, verificamos assumindo que x é maior que 5 e, desde que isso seja verdade, imprimimos x. Em seguida, chamamos a função filter(), passando filterdata como argumento principal e uma tupla (1, 2, 6) como argumento subsequente. A função filter() aplica a função filterdata() a cada elemento da tupla e retorna um iterador que contém apenas os elementos que atendem à condição x > 5. Por fim, convertemos o iterador em uma lista utilizando a função list() e imprima o resultado.
A seguir estão alguns exemplos adicionais de como utilizar o método filter() em Python:
Exemplo 2:
Filtre strings vazias de uma 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)
Saída:
[ 'hello', 'world' ]
Neste exemplo, a função lambda verifica se cada string não está vazia, testando assumindo que é equivalente à string vazia (''). A função filter() retorna outro iterável contendo apenas as strings não vazias.
Exemplo 3:
Filtre os números negativos de uma 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)
Saída:
[1, 3, 5]
Neste exemplo, a função lambda verifica assumindo que cada número é não negativo, testando se é mais proeminente ou equivalente a zero (0). A função filter() retorna outro iterável contendo apenas os números não negativos.
Exemplo 4:
Filtre as duplicatas de uma 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)
Saída:
[ 1, 4, 5 ]
Neste exemplo, a função lambda verifica se cada número aparece apenas uma vez na lista de números, contando com que frequência ele aparece (numbers.count(x)) e testando se a contagem é equivalente a 1. A função filter() retorna outro iterável contendo apenas os números exclusivos.
Nota: É significativo que no Python 3, a função filter() retorne um iterável, e isso implica que você realmente deseja alterá-lo completamente para uma lista (conforme exibido nos exemplos acima) para envolvê-lo como uma lista. No entanto, em Python 2, a função filter() retorna uma lista, é claro.
Conclusão:
Finalmente, a função filter() é uma ferramenta poderosa para manipulação de dados em Python. Ao filtrar um iterável com base em uma condição predefinida, você pode separar de forma rápida e eficaz os dados que realmente deseja. Da mesma forma, você pode utilizar filter() em combinação com outras funções Python para realizar manipulações de dados mais complicadas.