Maison >développement back-end >Tutoriel Python >Comment déterminer si un générateur est vide à l'initialisation

Comment déterminer si un générateur est vide à l'initialisation

Susan Sarandon
Susan Sarandonoriginal
2024-10-20 11:12:30545parcourir

How to Determine if a Generator is Empty at Initialization

Détermination du vide d'un générateur à l'initiation

Lorsque vous travaillez avec des générateurs, déterminer leur vide à la création peut être essentiel pour un déroulement efficace du programme. Bien que les générateurs n'aient pas de méthode isEmpty explicite, il existe plusieurs approches pour résoudre ce problème.

Une méthode consiste à exploiter la fonction peek(), qui renvoie le premier élément du générateur ou None s'il est vide. Cette fonction peut être implémentée comme suit :

def peek(iterable):
    try:
        first = next(iterable)
    except StopIteration:
        return None
    return first, itertools.chain([first], iterable)

Pour utiliser cette fonction, vous pouvez procéder comme suit :

res = peek(mysequence)
if res is None:
    # sequence is empty. Do stuff.
else:
    first, mysequence = res
    # Do something with first, maybe?
    # Then iterate over the sequence:
    for element in mysequence:
        # etc.

Dans ce scénario, si le résultat renvoyé est Aucun, cela indique un générateur vide. Inversement, si un premier élément valide et ma séquence sont renvoyés, vous pouvez procéder à une itération régulière.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn