Itération de liste circulaire en Python
L'implémentation d'un itérateur qui parcourt une liste circulaire à plusieurs reprises, toujours en commençant par le dernier élément visité, est une pratique courante exigence dans des scénarios tels que le regroupement de connexions. Python fournit une solution élégante pour cette tâche avec sa fonction itertools.cycle.
itertools.cycle prend un itérable (comme une liste) comme entrée et renvoie un itérateur infini qui parcourt à plusieurs reprises ses éléments. L'itérateur n'avance pas automatiquement, donc pour récupérer manuellement les valeurs, vous pouvez appeler la fonction next() sur l'objet itérateur.
Par exemple, considérons une liste circulaire lst contenant les éléments 'a', 'b ', 'c'. En utilisant itertools.cycle, nous pouvons créer un itérateur circulaire comme suit :
from itertools import cycle lst = ['a', 'b', 'c'] pool = cycle(lst)
Maintenant, nous pouvons parcourir la liste circulaire à plusieurs reprises en appelant next sur l'itérateur du pool :
for item in pool: print(item)
Cela imprimera les éléments de lst dans une boucle infinie :
a b c a b c ...
Pour avancer l'itérateur manuellement et récupérer les valeurs une par une, vous pouvez utiliser directement la fonction suivante :
print(next(pool)) # Output: a print(next(pool)) # Output: b
En résumé, itertools.cycle fournit un moyen concis et efficace de créer un itérateur de liste circulaire en Python. En utilisant next sur l'objet itérateur, vous pouvez avancer manuellement l'itérateur et récupérer les valeurs une par une selon vos besoins.
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!