Maison > développement back-end > Tutoriel Python > Comment puis-je parcourir un itérateur en morceaux à l'aide de Python ?

Comment puis-je parcourir un itérateur en morceaux à l'aide de Python ?

Susan Sarandon
Libérer: 2024-12-03 13:38:11
original
1136 Les gens l'ont consulté

How Can I Iterate Through an Iterator in Chunks Using 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]]
Copier après la connexion

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]]
Copier après la connexion

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]]
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal