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]
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))
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'
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']
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!