我的問題是我們如何跳出一個內循環,但是當再次進入循環時仍然迭代到下一個值。Python中的內循環打破
這是可能嗎?
考慮之下,極度簡化,片段:
item=['I','want','this','output']
i=[1,2,3,4]
for x in i:
for y in item:
print y
break
輸出,當然是4倍的話「我」
我真正想要的輸出爲是這樣的:「我希望這個輸出」
謝謝
我的問題是我們如何跳出一個內循環,但是當再次進入循環時仍然迭代到下一個值。Python中的內循環打破
這是可能嗎?
考慮之下,極度簡化,片段:
item=['I','want','this','output']
i=[1,2,3,4]
for x in i:
for y in item:
print y
break
輸出,當然是4倍的話「我」
我真正想要的輸出爲是這樣的:「我希望這個輸出」
謝謝
爲了,因爲你問,「還是迭代時再次進入該循環的下一個值」,您可以在內環的列表轉換爲迭代器。每次你「看見」項目被消耗,你會不會再次訪問它,可以讓你在同一地點,下次可以繼續:
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
Exaclty我需要!謝謝 – 2014-10-04 21:31:28
不知道爲什麼這是downvoted;使用內部循環的迭代器正是我所用的。 – 2014-10-04 21:31:42
爲什麼不
item = ["give", "me", "free", "things"]
for x in item
print x
你也可以這樣做:
item = ["give", "me", "free", "things"]
for x in list(enumerate(item))
print item[x]
對於使用的字符串+1 :) – 2014-10-04 21:25:38
使用'枚舉'不在範圍 – 2014-10-04 21:54:14
你試過插入一些調試打印語句,以更好地unterstand你的算法? – tobias47n9e 2014-10-04 21:25:58
您不能在不影響內部環境的情況下中斷外部環路。 – 2014-10-04 21:31:16
也許你需要改寫/重新思考你的問題。你是否試圖將兩個列表中的每個相應項目配對? – 2014-10-04 21:32:28