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}")
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
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}")
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)
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!