Sobes.tech
Junior — Senior
45

Разные подходы к ускорению функции поиска первого совпадения

Условие задачи

Предложите несколько методов ускорения функции fetch_first_match, применяя генераторы, встроенные возможности Python и безопасные приёмы работы со значением по умолчанию.

def fetch_first_match(condition, items=None):
    if items is None:
        items = []
    matches = [elem for elem in items if condition(elem)]
    if matches:
        first = matches[0]
        return first
    return None

fetch_first_match(lambda x: x == 1, [2, 3, 4])