Introdução
Em Python, podemos usar a função enumerate() para iterar sobre uma lista e obter tanto o índice quanto o valor de cada elemento. Também podemos usar list comprehension (compreensão de lista) para filtrar elementos que satisfazem uma determinada condição. Neste desafio, você usará esses conceitos para criar uma função que encontra os índices de todos os elementos em uma lista que satisfazem uma função de teste dada.
Encontrar Todos os Índices Correspondentes
Escreva uma função find_index_of_all(lst, fn) que recebe uma lista lst e uma função de teste fn como argumentos e retorna uma lista de índices de todos os elementos em lst para os quais fn retorna True.
Entrada
- Uma lista
lstde inteiros. - Uma função de teste
fnque recebe um inteiro como entrada e retorna um valor booleano.
Saída
- Uma lista de inteiros representando os índices de todos os elementos em
lstpara os quaisfnretornaTrue.
def find_index_of_all(lst, fn):
return [i for i, x in enumerate(lst) if fn(x)]
find_index_of_all([1, 2, 3, 4], lambda n: n % 2 == 1) ## [0, 2]
Resumo
Neste desafio, você aprendeu como usar enumerate() e list comprehension (compreensão de lista) para encontrar os índices de todos os elementos em uma lista que satisfazem uma função de teste dada. Agora você pode usar esse conhecimento para resolver problemas semelhantes no futuro.