Python 什么';这是嵌套列表中for语句排序的原因

Python 什么';这是嵌套列表中for语句排序的原因,python,list-comprehension,Python,List Comprehension,描述如何使用列表理解来展平嵌套结构,如下所示: [林中以叶换树,林中以叶换树] 如评论中所述,如果将for语句的顺序颠倒,这一点会更清楚,如下所示: [以树换叶,以林换树] 为什么Python列表理解中的for循环是按这种顺序解释的 这个想法是为循环模拟嵌套的 [x for y in z for x in y] 其组织顺序与 for y in z: for x in y: yield x 这一点在本节中提到 表单[…for x…for y…]嵌套,最后一个索引

描述如何使用列表理解来展平嵌套结构,如下所示:

[林中以叶换树,林中以叶换树]

如评论中所述,如果将
for
语句的顺序颠倒,这一点会更清楚,如下所示:

[以树换叶,以林换树]


为什么Python列表理解中的for循环是按这种顺序解释的

这个想法是为循环模拟嵌套的

[x for y in z for x in y]
其组织顺序与

for y in z:
    for x in y:
        yield x
这一点在本节中提到

表单
[…for x…for y…]
嵌套,最后一个索引变化最快,就像嵌套for循环一样


因为第一个更好地映射到它所表示的for循环代码

[leaf *for tree in forest for leaf in tree*]
                      |
                      V
            for tree in forest:
                for leaf in tree:
                      |
                      V
               expected result
而第二个在这个意义上是无效的

[leaf *for leaf in tree for tree in forest*]
                      |
                      V
            for leaf in tree:
                for tree in forest: 
                      |
                      V
                     ???