2010-04-20 2 views
15

C/C++에서와 같이 하나의 for 루프에서 여러 카운터를 실행할 수 있습니까?하나의 for 루프에 여러 개의 카운터가 있습니다 : Python

내가 좋아할만한 것을 원할 것입니다. - for i,j in x,range(0,len(x)): 파이썬이 이것을 다르게 해석하고 왜 그런지 알지만, 하나의 루프에서 두 개의 루프 카운터를 동시에 실행하는 방법은 무엇입니까?

+2

(아마 당신은이 케이스에 넣어 사용하지 않기 때문에)'범위 (0, LEN (x는)) == 범위 (LEN (x)는)' –

답변

13

당신은 zip

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

예를 사용 할 수 있습니다,

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

:이 질문에 대한 정답은 언급 된 다른 같은 enumerate이며, 지퍼 여러 항목을 가지고있는 일반 옵션입니다 단일 루프에서

+0

는'zip' 좋은, 그러나이 특별한 경우에,'열거하십시오'는 원래 포스터가 원하는 것을하는 보통 방법입니다. – EOL

27

일반적으로 zip을 원하고 whi ch는 두 개의 이터레이터를 결합합니다. @ S.Mark는 말합니다. 이 처음 x의 인덱스를 제공

for j, i in enumerate(x): 

하는 것으로, 그래서 나는 j, i 반전했습니다 :하지만이 경우 enumerate 당신이 직접 range를 사용할 필요가 없습니다 의미하는 것을 적극 추천한다. 이외에도

관련 문제