Python >> Tutoriel Python >  >> Python

Comment parcourir une liste par deux ?

Vous pouvez utiliser for in range avec un pas de 2 :

Python 2

for i in xrange(0,10,2):
  print(i)

Python 3

for i in range(0,10,2):
  print(i)

Remarque : Utilisez xrange en Python 2 au lieu de range car il est plus efficace car il génère un objet itérable, et non la liste entière.


Vous pouvez également utiliser cette syntaxe (L[start:stop:step] ):

mylist = [1,2,3,4,5,6,7,8,9,10]
for i in mylist[::2]:
    print i,
# prints 1 3 5 7 9

for i in mylist[1::2]:
    print i,
# prints 2 4 6 8 10

Où le premier chiffre est l'index de départ (par défaut au début de la liste ou 0), le 2e est l'index de tranche de fin (par défaut à la fin de la liste) et le troisième chiffre est le décalage ou l'étape.


Le plus simple à mon avis est juste ceci :

it = iter([1,2,3,4,5,6])
for x, y in zip(it, it):
    print x, y

Out: 1 2
     3 4
     5 6

Pas d'importations supplémentaires ou quoi que ce soit. Et très élégant, à mon avis.