Est-il possible en Python d'exécuter plusieurs compteurs en une seule boucle for comme en C/C++?
Je voudrais quelque chose comme - for i,j in x,range(0,len(x)):
Je sais Python interprète cela différemment et pourquoi, mais comment pourrais-je exécuter deux compteurs de boucle simultanément dans une seule boucle for?
Vous voulez Zip
en général, qui combine deux itérateurs, comme le dit @ S.Mark. Mais dans ce cas, enumerate
fait exactement ce dont vous avez besoin, ce qui signifie que vous n'avez pas à utiliser range
directement:
for j, i in enumerate(x):
Notez que cela donne l'index de x
en premier, donc j'ai inversé j, i
.
Vous voudrez peut-être utiliser Zip
for i,j in Zip(x,range(0,len(x))):
Exemple,
>>> x = [1, 2, 3]
>>> y = [4, 5, 6]
>>> zipped = Zip(x, y)
>>> print zipped
[(1, 4), (2, 5), (3, 6)]
>>> for a,b in zipped:
... print a,b
...
1 4
2 5
3 6
>>>
Remarque : La bonne réponse à cette question est enumerate
comme mentionné, Zip est une option générale pour avoir plusieurs éléments dans une seule boucle
for i,j in enumerate(x)