小智 5

有一个后代方法可以找到所有子节点,包括每个子节点的子节点:

1-2
 \
  3
   \
    4
Run Code Online (Sandbox Code Playgroud)
import networkx as nx

G = nx.DiGraph()
G.add_edge(1, 2)
G.add_edge(1, 3)
G.add_edge(2, 4)
res = nx.descendants(G, 1)
print (res) #{2,3,4}
Run Code Online (Sandbox Code Playgroud)


dte*_*ter 0

正如 Joel 指出的,dfs_preorder_nodes 在最新版本中仍然有效。该文档可在此处获取。

以下实现了所需的目标,即感兴趣的节点的所有递归子节点:

import networkx as nx 
children = [node for node in nx.dfs_preorder_nodes(network, queryID)]`
Run Code Online (Sandbox Code Playgroud)

  • 您还可以执行“children = list(nx.dfs...)”将生成器转换为列表。 (2认同)