Есть есть функция list_func_index(), аналогичная функции index(), которая имеет функцию f() в качестве параметра. Функция f() выполняется для каждого элемента e списка до тех пор, пока f(e) не вернет True. Затем list_func_index() возвращает индекс e.
В коде:
Код: Выделить всё
>>> 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
Подробнее здесь: https://stackoverflow.com/questions/170 ... unction-tr