Bifurcar Lista com Base em Função

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Neste desafio, você escreverá uma função Python que divide uma lista em dois grupos com base no resultado de uma função de filtragem fornecida. Esta é uma tarefa comum em programação, especialmente ao lidar com grandes conjuntos de dados (datasets).

Bifurcar Lista com Base em Função

Escreva uma função bifurcate_by(lst, fn) que recebe uma lista lst e uma função de filtragem fn como argumentos. A função deve dividir a lista em dois grupos com base no resultado da função de filtragem. Se a função de filtragem retornar um valor verdadeiro (truthy) para um elemento, ele deve ser adicionado ao primeiro grupo. Caso contrário, ele deve ser adicionado ao segundo grupo.

Sua função deve retornar uma lista de duas listas, onde a primeira lista contém todos os elementos para os quais a função de filtragem retornou um valor verdadeiro, e a segunda lista contém todos os elementos para os quais a função de filtragem retornou um valor falso (falsy).

Use uma compreensão de lista (list comprehension) para adicionar elementos aos grupos, com base no valor retornado por fn para cada elemento.

def bifurcate_by(lst, fn):
  return [
    [x for x in lst if fn(x)],
    [x for x in lst if not fn(x)]
  ]
bifurcate_by(['beep', 'boop', 'foo', 'bar'], lambda x: x[0] == 'b')
## [ ['beep', 'boop', 'bar'], ['foo'] ]

Resumo

Neste desafio, você aprendeu como dividir uma lista em dois grupos com base no resultado de uma função de filtragem fornecida. Você usou uma compreensão de lista (list comprehension) para adicionar elementos aos grupos, com base no valor retornado pela função de filtragem para cada elemento. Esta é uma técnica útil em programação, especialmente ao lidar com grandes conjuntos de dados (datasets).