Maison >développement back-end >Tutoriel Python >Comment vérifier si un générateur est vide en Python ?
Détection de l'initialisation d'un générateur vide
En Python, les générateurs sont des itérateurs qui génèrent des valeurs une à la fois. Ainsi, déterminer si un générateur est vide dès le départ peut être un défi. Contrairement aux listes ou aux tuples, les générateurs n'ont pas de longueur inhérente ni de méthode isEmpty.
Relever le défi
Pour résoudre ce problème, une approche courante consiste à utiliser une fonction d'assistance pour jetez un œil à la première valeur du générateur sans la consommer. Si la fonction peek renvoie Aucun, cela indique que le générateur n'a aucun élément.
Implémentation suggérée
Une de ces fonctions, nommée peek, peut être implémentée comme suit :
<code class="python">def peek(iterable): try: first = next(iterable) except StopIteration: return None return first, itertools.chain([first], iterable)</code>
Utiliser Peek pour déterminer les générateurs vides
Pour déterminer si un générateur est vide, vous pouvez utiliser la fonction Peek de la manière suivante :
<code class="python">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.</code>
Dans cet exemple, si le générateur est vide, la fonction peek retournera None et la condition if sera vraie. Sinon, le bloc else sera exécuté. En utilisant cette approche, vous pouvez détecter efficacement si un générateur est vide dès sa création.
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!