python语法不清晰
我很难理解以下列表:python语法不清晰,python,list,list-comprehension,Python,List,List Comprehension,我很难理解以下列表: words = [word for line in open('words.txt', 'r') for word in line.split()] 我理解第一部分,open('words.txt',r')中的逐字逐句但是第二部分让我困惑。这是否意味着对于words.txt中的每一行,拆分行上的每个word循环?for循环从左到右嵌套。您可以将其写为常规循环,如下所示: words = [] for line in open('words.txt', 'r'):
words = [word for line in open('words.txt', 'r') for word in line.split()]
我理解第一部分,open('words.txt',r')中的
逐字逐句但是第二部分让我困惑。这是否意味着对于words.txt
中的每一行,拆分行上的每个word
循环?for
循环从左到右嵌套。您可以将其写为常规循环,如下所示:
words = []
for line in open('words.txt', 'r'):
for word in line.split():
words.append(word)
因此,for
循环前面的表达式是添加到生成列表中的最终值,所有for
循环(以及任何if
测试)都嵌套在前面的循环或测试中执行
因此,是的,对于打开的文件中的每一行,该行将被拆分,并且这些行产生的单词将添加到正在生成的列表中。yes。这正是它的意思。@JeanFrançoisfare:dupe是用于将一个列表理解用作另一个列表理解的表达式,而不是用于在一个列表理解中使用多个for循环。第二个答案可能涵盖了这种情况,但答案在完全错误的上下文中(这是对所贴问题的错误回答)。我注意到这篇文章对语法做了足够详细的介绍,包括多个for
循环。@Jean-Françoisfare:不,我们只是需要找到一个更好的重复。