Python Language Recherche


Exemple

La fonction next est utile même sans itération. Passer une expression de générateur à next est un moyen rapide de rechercher la première occurrence d'un élément correspondant à un prédicat. Code procédural comme

def find_and_transform(sequence, predicate, func):
    for element in sequence:
        if predicate(element):
            return func(element)
    raise ValueError

item = find_and_transform(my_sequence, my_predicate, my_func)

peut être remplacé par:

item = next(my_func(x) for x in my_sequence if my_predicate(x))
# StopIteration will be raised if there are no matches; this exception can
# be caught and transformed, if desired.

À cette fin, il peut être souhaitable de créer un alias, tel que first = next , ou une fonction wrapper pour convertir l'exception:

def first(generator):
    try:
        return next(generator)
    except StopIteration:
        raise ValueError