Itérer sur des listes Python en morceaux : solutions pythoniques
Dans cet article, nous explorons les moyens de parcourir des listes Python en morceaux, où chaque morceau se compose d’un nombre spécifique d’éléments. La situation donnée implique de travailler avec quatre entiers à la fois.
Approche conventionnelle
Le segment de code fourni décrit une approche de style C pour segmenter la liste :
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]
Bien que cette méthode soit fonctionnelle, elle peut ne pas correspondre au langage idiomatique de Python principes.
Solutions Pythoniques
1. Utilisation de la fonction chunker
Depuis Python 3.12, Python a introduit la fonction chunker, qui fournit un moyen concis et efficace de fragmenter n'importe quelle séquence :
def chunker(seq, size): return (seq[pos:pos + size] for pos in range(0, len(seq), size))
Cette fonction crée un générateur qui produit des morceaux de la taille spécifiée à partir de la séquence donnée. Le code suivant présente l'utilisation :
for group in chunker(text, 7): print(repr(group),)
2. Utilisation d'itertools.islice
Pour les versions Python antérieures à 3.12, itertools.islice peut être utilisé pour le chunking :
from itertools import islice def grouper(seq, size): it = iter(seq) while True: chunk = list(islice(it, size)) if not chunk: return yield chunk
Cette fonction crée de la même manière un générateur, qui produit des listes d'éléments de la séquence.
Conclusion
La fonction chunker fournit une solution native et efficace pour segmenter les listes dans Python 3.12 et versions ultérieures. Pour les versions antérieures, la fonction groupeur offre une alternative adaptée. Ces méthodes permettent un code plus concis et idiomatique lorsque vous travaillez avec de grandes listes.
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!