我理解这一点没有问题:
a = [1,2,3,4]
b = [x for x in a]
我以为这就是全部,但后来我发现了这个片段:
a = [[1,2],[3,4],[5,6]]
b = [x for xs in a for x in xs]
这使得b = [1,2,3,4,5,6]
。问题是我无法理解 [x for xs in a for x in xs]
中的语法,有人能解释一下它是如何工作的吗?
最佳答案
啊,难以理解的“嵌套”理解。循环展开的顺序与推导式中的顺序相同。
[leaf for branch in tree for leaf in branch]
这样想会有所帮助。
for branch in tree:
for leaf in branch:
yield leaf
PEP202断言“最后一个索引变化最快”的语法是“正确的”,特别是没有解释为什么。
关于python - 解释嵌套列表理解如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59977329/