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-15 21:20:13
original
606 Les gens l'ont consulté

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

Itérer sur deux éléments d'une liste

En Python, itérer sur une liste implique souvent l'utilisation d'une boucle for ou d'une compréhension de liste. Cependant, lorsque vous devez accéder à tous les deux éléments ensemble, les méthodes standard peuvent ne pas suffire.

Pour parcourir chaque paire d'éléments d'une liste, vous pouvez utiliser la pairwise() implémentation :

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

l = [1, 2, 3, 4, 5, 6]

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

Cette fonction parcourt la liste deux fois, associant chaque élément au suivant. Il produit un résultat similaire à celui-ci :

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

Pour une solution plus générale, considérez la fonction grouped(), qui vous permet de parcourir des groupes de n éléments :

def grouped(iterable, n):
    "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)

for x, y in grouped(l, 2):
    print(f"{x} + {y} = {x + y}")
Copier après la connexion

Cette fonction prend une liste et une taille de groupe comme arguments et renvoie un itérateur qui produit des groupes d'éléments. Par exemple, appeler grouped([1, 2, 3, 4, 5, 6], 3) donnerait :

(1, 2, 3)
(4, 5, 6)
Copier après la connexion

En Python 2, vous pouvez utiliser izip au lieu de zip à des fins de compatibilité.

Ces méthodes fournissent des et des moyens flexibles de parcourir les éléments d'une liste, vous permettant de les traiter par paires ou en groupes selon vos besoins.

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