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