【发布时间】:2015-01-01 18:30:37
【问题描述】:
我是 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)
在嵌套循环中定义之前,如何在第一个循环中使用 line?但是,它确实有效。我认为这表明嵌套列表理解和生成器表达式的顺序是从左到右,这与我之前的理解相矛盾。
谁能帮我澄清一下正确的顺序?
【问题讨论】:
-
你的循环倒退了。
for line in page部分应该是外循环。 -
如果你认为你的嵌套循环是等价的,你需要解释一下外循环中
line的定义位置。嵌套生成器表达式中的顺序与任何嵌套循环相同。
标签: python generator list-comprehension