2010-04-20 9 views
15

Ist es in Python möglich, mehrere Zähler in einer einzigen for-Schleife wie in C/C++ auszuführen?Mehrere Zähler in einer einzigen for-Schleife: Python

würde ich möchte so etwas wie - for i,j in x,range(0,len(x)): weiß ich Python dies anders und warum interpretiert, aber wie würde ich laufen zwei Schleifenzähler gleichzeitig in einer for-Schleife Single?

+2

Abgesehen (da Sie wahrscheinlich es in diesem Fall nicht verwendet werden sollen): 'Bereich (0, len (x)) == Bereich (len (x))' ' –

Antwort

13

Sie könnten zip

for i,j in zip(x,range(0,len(x))): 

Beispiel,

>>> 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 
>>> 

Hinweis verwenden möchten: Die richtige Antwort auf diese Frage ist enumerate wie andere erwähnt, zip ist allgemeine Option mehrere Elemente haben in einer einzigen Schleife

+0

zip' ist gut, Aber in diesem speziellen Fall ist 'enumerate' die übliche Art zu tun, was das ursprüngliche Poster will. – EOL

27

Sie wollen zip im Allgemeinen, whi ch kombiniert zwei Iteratoren, wie @S.Mark sagt. Aber in diesem Fall enumerate tut genau das, was Sie brauchen, was bedeutet, Sie müssen range nicht direkt verwenden:

for j, i in enumerate(x): 

Beachten Sie, dass dies den Index x gibt erste, also habe ich j, i umgekehrt.

Verwandte Themen