2014-10-31 49 views

回答

4

for語句在您試圖迭代的對象上隱式調用iter()。然後第二種形式是多餘的,兩次做同樣的工作,沒有任何好處。

可能是一個優勢之前你循環存儲iter()迭代

foo_iter = iter(foo.splitlines()) 
for line in foo_iter: 
    next_line = next(foo_iter, '') 
    print(next_line.rstrip()) 
    print(line.rstrip()) 
+0

在這種情況下,我認爲這是最好使用while循環。 for循環意味着將每個元素逐個迭代給我。雖然我想在這個特定的例子中,將'foo.splitlines()'包裝在一個生成器中,每個'next()'調用產生兩個元素的元組也是可行的。 – Dunes 2014-10-31 14:04:01

+0

@Dunes:不確定是否有擔保。例如,當解析具有重複記錄結構的文件時,我經常使用嵌套的for循環,例如,在行上迭代,直到檢測到記錄結束。使用'while'會使這些代碼變得不必要的複雜。 – 2014-10-31 14:06:56

+0

你會得到一個運行你的代碼的stopIteration錯誤 – 2014-10-31 14:08:41