Maison >développement back-end >Tutoriel Python >Comment puis-je parcourir un itérateur en morceaux à l'aide de Python ?
Itérer un itérateur par morceaux d'une taille spécifique avec Python
Itérer sur un itérateur par morceaux d'une taille spécifique est une tâche courante en Python. Pour y parvenir, envisagez d'utiliser les approches suivantes :
Utilisation de la fonction itertools.grouper() :
La fonction itertools.grouper() fournit une méthode polyvalente de regroupement un itérable en morceaux. Cependant, cela nécessite une manipulation supplémentaire pour prendre en charge les morceaux finaux incomplets, ce qui peut être obtenu avec le paramètre incomplete.
from itertools import grouper it = iter([1, 2, 3, 4, 5, 6, 7]) chunk_size = 3 chunks = list(grouper(it, chunk_size, incomplete='ignore')) print(chunks) # [[1, 2, 3], [4, 5, 6], [7]]
Utilisation de la fonction itertools.batched() (Python 3.12) :
Introduit dans Python 3.12, la fonction itertools.batched() gère explicitement le chunking et préserve l'original type de séquence.
from itertools import batched it = [1, 2, 3, 4, 5, 6, 7] chunk_size = 3 chunks = list(batched(it, chunk_size)) print(chunks) # [[1, 2, 3], [4, 5, 6], [7]]
Solution alternative pour les itérateurs de séquence :
Pour les séquences, une solution moins générale mais pratique consiste à utiliser le découpage de liste avec une taille de pas égale à la taille du morceau.
it = [1, 2, 3, 4, 5, 6, 7] chunk_size = 3 chunks = [it[i:i + chunk_size] for i in range(0, len(it), chunk_size)] print(chunks) # [[1, 2, 3], [4, 5, 6], [7]]
Ces méthodes fournissent des moyens efficaces de parcourir un itérateur par morceaux, permettant une gestion flexible des morceaux finaux incomplets et préservation du type de séquence d'origine si nécessaire.
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!