Maison > développement back-end > Tutoriel Python > Comment puis-je parcourir efficacement une liste en morceaux à l'aide de Python ?

Comment puis-je parcourir efficacement une liste en morceaux à l'aide de Python ?

Patricia Arquette
Libérer: 2024-12-20 00:18:08
original
858 Les gens l'ont consulté

How Can I Efficiently Iterate Over a List in Chunks Using Python?

Itérer sur une liste en morceaux : une perspective pythonique

En Python, la tâche d'itération sur une liste en morceaux peut être accomplie en diverses manières. Une approche courante consiste à utiliser une boucle pour accéder progressivement aux éléments à des intervalles spécifiques :

for i in range(0, len(ints), 4):
    # dummy op for example code
    foo += ints[i] * ints[i + 1] + ints[i + 2] * ints[i + 3]
Copier après la connexion

Cette méthode, bien que fonctionnelle, peut introduire une complexité inutile et une « pensée C » dans votre code Python. Une approche plus pythonique consiste à exploiter la fonction range() intégrée et le découpage :

def chunker(seq, size):
    return (seq[pos:pos + size] for pos in range(0, len(seq), size))
Copier après la connexion

La fonction chunker crée une expression génératrice qui parcourt la séquence, produisant des morceaux de la taille souhaitée à partir de différentes positions. Il est très efficace et élimine le besoin de boucles explicites et de manipulation d'index.

Par exemple, considérons le code suivant :

text = "I am a very, very helpful text"

for group in chunker(text, 7):
   print(repr(group),)

# 'I am a ' 'very, v' 'ery hel' 'pful te' 'xt'
Copier après la connexion

Ici, la fonction chunker divise le texte en groupes de sept caractères, produisant des tuples de séquences de caractères.

De même, vous pouvez utiliser la fonction chunker pour traiter des séquences de tout type, telles que des listes de animaux :

animals = ['cat', 'dog', 'rabbit', 'duck', 'bird', 'cow', 'gnu', 'fish']

for group in chunker(animals, 3):
    print(group)

# ['cat', 'dog', 'rabbit']
# ['duck', 'bird', 'cow']
# ['gnu', 'fish']
Copier après la connexion

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