python - 解释嵌套列表理解如何工作?

标签 python list

我理解这一点没有问题:

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/

相关文章:

python - 遍历数字并评估数字是否可以被某些数字整除

python - 将嵌套列表转换为字符串

python - 递归后序遍历以在 Python 中列出?

list - 如何在不在erlang中创建新变量的情况下将元素添加到现有列表?

jquery - 带有 vimeo 章节的多标签 Bootstrap

Python SMTP.login 不起作用

python - 如何确保类型提示仍然适用于从集合继承 UserList 的类?

python - 检查字符串是否包含列表中的任何元素

python - python 上的 tic tac toe 程序出现某种错误,弹出黑屏,程序没有响应

python - 从 WKT 字符串中提取 XY 范围