Introduction
En Python, nous pouvons utiliser la fonction enumerate() pour itérer sur une liste et obtenir à la fois l'index et la valeur de chaque élément. Nous pouvons également utiliser la compréhension de liste pour filtrer les éléments qui satisfont une certaine condition. Dans ce défi, vous utiliserez ces concepts pour créer une fonction qui trouve les index de tous les éléments d'une liste qui satisfont une fonction de test donnée.
Trouver tous les index correspondants
Écrivez une fonction trouver_index_de_tous(lst, fn) qui prend une liste lst et une fonction de test fn en arguments et renvoie une liste d'index de tous les éléments de lst pour lesquels fn renvoie True.
Entrée
- Une liste
lstd'entiers. - Une fonction de test
fnqui prend un entier en entrée et renvoie une valeur booléenne.
Sortie
- Une liste d'entiers représentant les index de tous les éléments de
lstpour lesquelsfnrenvoieTrue.
def trouver_index_de_tous(lst, fn):
return [i for i, x in enumerate(lst) if fn(x)]
trouver_index_de_tous([1, 2, 3, 4], lambda n: n % 2 == 1) ## [0, 2]
Sommaire
Dans ce défi, vous avez appris à utiliser enumerate() et la compréhension de liste pour trouver les index de tous les éléments d'une liste qui satisfont une fonction de test donnée. Vous pouvez désormais utiliser ces connaissances pour résoudre des problèmes similaires à l'avenir.