Функция list.index(x)
возвращает индекс в списке первого элемента, значение которого равно x
.
Есть ли функция list_func_index()
, похожая на функцию index()
которая имеет функцию f()
в качестве параметра. Функция f()
запускается для каждого элемента e
списка до тех пор, пока f(e)
вернет True
. Затем list_func_index()
возвращает индекс 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
Есть ли более элегантное решение? (и лучшее название для функции)