Maison > développement back-end > Tutoriel Python > Comment puis-je parcourir des paires (ou des groupes) d'éléments dans une liste Python ?

Comment puis-je parcourir des paires (ou des groupes) d'éléments dans une liste Python ?

Susan Sarandon
Libérer: 2024-12-10 15:55:13
original
697 Les gens l'ont consulté

How Can I Iterate Over Pairs (or Groups) of Elements in a Python List?

Itération sur des paires d'éléments dans une liste

Lors de l'itération sur une liste, nous rencontrons souvent des situations où nous avons besoin d'accéder à deux éléments à un temps. Pour résoudre ce problème, nous pouvons utiliser le concept d'itération par paire.

La fonction zip() intégrée de Python peut nous aider à cet égard. La méthode pairwise() ou grouped() consomme un itérable et produit des sous-séquences successives de deux éléments. Voici comment nous pouvons l'implémenter :

def pairwise(iterable):
    "s -> (s0, s1), (s2, s3), (s4, s5), ..."
    a = iter(iterable)
    return zip(a, a)
Copier après la connexion

À l'aide de cette fonction, considérons la liste [1, 2, 3, 4, 5, 6]. Pour démontrer l'itération par paire :

for x, y in pairwise(l):
   print("%d + %d = %d" % (x, y, x + y))
Copier après la connexion

Cela produira le résultat suivant :

1 + 2 = 3
3 + 4 = 7
5 + 6 = 11
Copier après la connexion

Alternativement, la fonction grouped() nous permet d'itérer sur n éléments à la fois. Voici une implémentation :

def grouped(iterable, n=2):
    "s -> (s0,s1,s2,...sn-1), (sn,sn+1,sn+2,...s2n-1), (s2n,s2n+1,s2n+2,...s3n-1), ..."
    return zip(*[iter(iterable)] * n)
Copier après la connexion

Par exemple, avec n défini sur 3, nous pouvons parcourir trois éléments à la fois :

for x, y, z in grouped(l, 3):
   print("%d + %d + %d = %d" % (x, y, z, x + y + z))
Copier après la connexion

Cette approche est efficace car elle parcourt le lister une seule fois et élimine le besoin de listes intermédiaires.

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