具有两个for循环的列表理解的功能

时间:2016-06-19 19:40:49

标签: python list list-comprehension

我正在阅读article解释列表理解,并且遇到了以下示例,该示例应该构建一个非素数列表:

noprimes = [j for i in range(2, 8) for j in range(i*2, 50, i)]

我尝试通过在shell中分别运行for循环来打破列表理解,但我仍然不清楚语句的功能。似乎第一个循环应该是遍历2到8的数字列表,然后将每个数字存储在j中,然后传递给第二个(嵌套?)循环,该循环从当前值i乘以2生成数字直到50,增量为i。

我所描述的列表理解的实际功能是什么?

1 个答案:

答案 0 :(得分:2)

此列表理解与以下代码的执行方式相同:

noprimes = []
for i in range(2,8):
    for j in range(i*2, 50, i):
        noprimes.append(j)