1
2def first(l, p):
3 return next((idx,value) for idx,value in enumerate(l) if p(value))
4
5# just use itertools.pairwise
6def pairs(l):
7 return zip(l, l[1:])
8
9def index_where(predicate, _list):
10 return next(filter(lambda _tuple: predicate(_tuple[1]), enumerate(_list)))[0]
11