logo

Função filtro Python()

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.