2014-10-04 4 views
-3

제 질문은 내부 루프에서 벗어날 수 있지만 루프가 다시 입력 될 때 다음 값으로 반복 할 수있는 방법입니다.파이썬의 내부 루프가 끊어집니다.

가능성이 있습니까?

아래, 매우 단순화 된 고려는 니펫을 :

item=['I','want','this','output'] 
i=[1,2,3,4] 

for x in i: 
    for y in item: 
     print y 
     break 

출력은 4 배 단어가 '나'정말 될 수있는 출력이 있습니다 원하는 것은

을 물론이다 : '나는 이 출력 '

당신에게

+0

알고리즘을 잘 이해하기 위해 일부 디버그 프린트 문을 삽입 해 보았습니까? – tobias47n9e

+0

내부에 영향을주지 않고 외부 루프를 인터럽트 할 수 없습니다. –

+0

아마도 질문을 다시 말하고 다시 생각해 볼 필요가있을 것입니다. 두 목록의 각 해당 항목을 쌍으로 연결하려고합니까? –

답변

1

당신이 요구 한대로에, "아직도 그 루프를 다시 입력 한 다음 값으로 반복", 당신은에 내부 루프의 목록을 변환 할 수 있습니다 반복자. 당신이 "본"각 항목은 소비, 당신은 같은 지점에서 다음에 계속 할 수 있도록, 다시 액세스하지 않습니다

item_iter = iter(item) 
for x in i: 
    for y in item_iter: 
     print y 
     break 

I 
want 
this 
output 

을이이 솔루션의 종류를 필요로하는 상황에서 참으로 가정한다 . 더 간단한 것 :

for x, y in zip(i, item): 
    print y 
+0

Exaclty 내가 필요한 것! 고마워요 –

+1

왜 이것이 downvoted되었는지 잘 모르겠어요; 내부 루프에 대한 반복기를 사용하면 정확히 내가 사용하고자하는 것입니다. –

0

왜 그냥

감사를 원한다

당신도 할 수 :

위해
item = ["give", "me", "free", "things"] 
for x in list(enumerate(item)) 
    print item[x] 
+1

+1에 사용 된 문자열 : –

+0

use'enumerate' 범위가 아닙니다 –

관련 문제