En list.index(x)
renvoie l'indice dans la liste du premier élément dont la valeur est x
.
Existe-t-il une fonction, list_func_index()
, similaire à la index()
qui a une fonction, f()
comme paramètre. La fonction, f()
est exécuté sur chaque élément, e
de la liste jusqu'à ce que f(e)
retours True
. Ensuite list_func_index()
renvoie l'index de e
.
Codewise :
>>> def list_func_index(lst, func):
for i in range(len(lst)):
if func(lst[i]):
return i
raise ValueError('no element making func True')
>>> l = [8,10,4,5,7]
>>> def is_odd(x): return x % 2 != 0
>>> list_func_index(l,is_odd)
3
Existe-t-il une solution plus élégante ? (et un meilleur nom pour la fonction)