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

Comment puis-je parcourir efficacement une liste Python en morceaux ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-19 19:36:10338parcourir

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

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!

Déclaration:
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