【发布时间】:2017-10-06 22:15:57
【问题描述】:
我很难理解以下列表理解:
words = [word for line in open('words.txt', 'r') for word in line.split()]
我理解第一部分,word for line in open('words.txt', 'r'),但第二部分让我感到困惑。这是否意味着对于words.txt 中的每一行,在拆分line 上循环每个word?
【问题讨论】:
-
是的。这正是它的意思。
-
@JeanFrançoisFabre:这种欺骗是为了使用列表推导作为另一个列表推导的表达式,而不是在单个列表推导中使用多个 for 循环。
-
那里的第二个答案可能涵盖了这种情况,但那里的答案完全是错误的上下文(这是发布问题的错误答案)。
-
我注意到Python tutorial 涵盖了足够详细的语法,包括多个
for循环。 -
@Jean-FrançoisFabre:不,我们只需要找到一个更好的骗子。
标签: python list list-comprehension