我是Python新手,並且被Python官方文檔中的一段代碼弄糊塗了。python中嵌套列表理解和嵌套生成器表達式的順序
unique_words = set(word for line in page for word in line.split())
對我來說,它看起來等同於:
unique_words=set()
for word in line.split():
for line in page:
unique_words.add(word)
怎樣才能線在第一循環它在嵌套循環定義之前使用?但是,它確實有效。我認爲它表明了嵌套列表理解和生成器表達的順序是從左到右,這與我以前的理解相矛盾。
任何人都可以澄清正確的順序嗎?
你有循環倒退。 '頁面中的行'部分應該是外部循環。 – APerson 2014-11-05 14:15:25
如果你認爲你的嵌套循環是等價的,你需要解釋在外部循環中'行'的定義。嵌套的生成器表達式中的順序與任何嵌套的循環相同。 – chepner 2014-11-05 14:21:59
相關:http://stackoverflow.com/q/19484705/674039 – wim 2014-11-05 14:30:51