递归非常优雅。列表推导不适用于您要更改的结构,而不是产生新序列的情况。对于生成器,您可以编写DFS或BFS遍历器。
def dfs(nodes): if nodes is not None: for node in nodes: yield node for child in dfs(node['children']): yield childfor node in dfs(tree): if node['id'] in selected: node['selected'] = true
如果要选择的ID列表很大,则将其转换为以ID作为键的字典将更加高效,这将加快查找速度
node['id'] in selected。
selected = dict(zip(selected, selected))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)