python中for循环嵌套执行顺序

Python014

python中for循环嵌套执行顺序,第1张

我做个比喻:最外面的循环叫外循环,里面的循环叫内循环。

它们跟我们生活中的时钟一样,有时针分针,分针转一圈,时针只会转一下。反过来说,时针转动一格,分针需要转完一整圈,那么外循环好比时针,外循环一次,内循环循环完毕。

详细代码如下:

for i in range(3):#外循环一次

for j in range(1,11):#内循环10次

print(j)#结果出现三次1—10

https://stackoverflow.com/questions/11569535/python-nested-loop-with-generators-does-not-work-in-some-cases

这个文章解释的很清楚

当把生成器放在所有循环的外层时

得到的结果

但是如果把生成器放在循环当中

结果就是正常的

这是因为当a,b生成器在放在循环外层的时候,b生成器在外部循环第一次运行的时候,就已经用尽了,随后的迭代中,内部循环使用的都是空的b,就像

所以内部循环实际上只会在外部循环第一次运行的时候被循环一次,后面看起来就像没有被执行一样,实际是因为此时b为空了,所以要想循环正常运行,需要在内层循环运行的每次,都创建b生成器,就像第二个例子当中的那样。