我很难理解以下列表理解:
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
的循环是什么意思?
答案 0 :(得分:0)
for
循环从左到右嵌套。您可以将其写为常规循环,如下所示:
words = []
for line in open('words.txt', 'r'):
for word in line.split():
words.append(word)
因此for
循环之前的表达式是添加到生成列表的最终值,并且所有for
循环(以及任何if
测试)都嵌套在前面的循环中或测试。
所以,是的,对于打开文件中的每一行,该行被拆分,这些行中生成的单词将被添加到正在构建的列表中。