不清楚python语法

时间:2017-05-08 19:17:59

标签: python list list-comprehension

我很难理解以下列表理解:

words = [word for line in open('words.txt', 'r') for word in line.split()]

我理解第一部分word for line in open('words.txt', 'r'),但第二部分让我困惑。对于words.txt中的每一行,是否,对于分割word 上的每个line的循环是什么意思?

1 个答案:

答案 0 :(得分:0)

for循环从左到右嵌套。您可以将其写为常规循环,如下所示:

words = []
for line in open('words.txt', 'r'):
    for word in line.split():
        words.append(word)

因此for循环之前的表达式是添加到生成列表的最终值,并且所有for循环(以及任何if测试)都嵌套在前面的循环中或测试。

所以,是的,对于打开文件中的每一行,该行被拆分,这些行中生成的单词将被添加到正在构建的列表中。