Я хотел бы получить первый элемент из списка, соответствующего условию. Важно, чтобы полученный метод не обрабатывал весь список, который может быть довольно большим. Например, достаточна следующая функция:
def first(the_iterable, condition = lambda x: True):
for i in the_iterable:
if condition(i):
return i
Эта функция может быть использована примерно так:
>>> first(range(10))
0
>>> first(range(10), lambda i: i > 3)
4
Однако я не могу придумать хороший встроенный/один-лайнер, чтобы позволить мне сделать это. Я не особо хочу копировать эту функцию, если мне это не нужно. Есть ли встроенный способ получить первый элемент, соответствующий условию?