python - 这个 python "for"复合语句是如何工作的?

标签 python

我看到了 a problem on leetcode 的以下解决方案:

class Solution:
    def levelOrder(self, root):
        """
        :type root: Node
        :rtype: List[List[int]]
        """

        if root is None:
            return []

        q, res = [root], []
        q1 = []
        while q:
            res.append([node.val for node in q])
            q = [child for node in q for child in node.children]

        return res

[child for node in q for child in node.children] 如何工作? child 放在 for 循环语句之前是什么意思?

最佳答案

这是一个嵌套的列表理解。

q = [child for node in q for child in node.children]

相当于:

tmp = []
for node in q:
    for child in node.children:
        tmp.append(child)
q = tmp

关于python - 这个 python "for"复合语句是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54500076/

相关文章:

python - 删除flask中的一对一关系

Python:随脚本交付的自定义包及其导入方式

python - 创建子包而不影响全局包

c# - 如何使用 XML-RPC 在 Python 和 C# 之间进行通信?

python - 使用 Python 的视频流

python - Pandas 加速适用于 max()

python - 将函数应用于 pandas 中的 loc 调用会导致底层数据帧发生更改吗?

python - 如何猴子修补静态方法?

python - Numpy字符串数组,赋值

python - 如何在 Python 中设置直方图的 y 轴?