7. Filter()

  • Filter() é uma função que recebe 2 argumentos:
    • Uma função
    • Uma sequência
  • filter(Função,Sequência)
    • A função passada como parâmetro para filter() deve retornar um valor boolean True ou False.
  • A função será aplicada a todos os valores de uma sequência e os valores serão retornados, apenas se retornarem True para a função.

7.1. Criando uma função

def verificaPar(num):
    if num % 2 == 0:
        return True
    else:
        return False
  • Chamando a função e passando um número como parâmetro.
  • Retornará Falso de for ímpar e True se for par.
verificaPar(35)
False
  • Definindo uma lista numérica.
lista = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
  • Aplicando a função filter()
filter(verificaPar, lista)
<filter at 0x22a32e1e390>
  • Observe que serão retornados somente os elementos cujo o output da função verificarpar() é true.
list(filter(verificaPar, lista))
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

7.2. Utilizando a função anônima lambda

list(filter(lambda x: x%2==0, lista))
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
  • mais um exemplo utilizando a função lambda
list(filter(lambda num: num > 8, lista))
[9, 10, 11, 12, 13, 14, 15, 16, 17, 18]