【发布时间】:2019-03-13 10:02:07
【问题描述】:
我很难理解 Python 如何处理变量之后的 for 循环。我认为它可能与 Python 中的迭代器/迭代器有关,但我不确定我是否真的理解它的用法。基本上在下面的代码中,我理解了为什么它可以产生变量组合的数学原理,但我不明白这是创建列表的有效方法。根据我使用其他语言的经验,for 循环总是在表达式之前出现,并且在有多个表达式时会正确嵌套。
temp = [('CH', 'AG', 'ME', 'GS')]
[(temp[i],temp[j]) for i in range(len(temp)) for j in range(i+1, len(temp))]
#produces:[('CH', 'AG'), ('CH', 'ME'), ('CH', 'GS'),
#('AG', 'ME'),('AG', 'GS')('ME', 'GS')]
谁能解释这里发生了什么?
【问题讨论】:
-
这是一个列表理解。网上有很多关于它们的参考资料/教程。
-
在复杂性方面它与其他语言相似。你应该寻找列表理解
-
我将从list comprehensions 上的官方 Python 文档开始。
-
虽然我有点晚了,但让我补充一点,列表理解比普通的 for 循环要快一些。