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.