我正在尝试在networkx的二合字母中查找没有传出边的节点。
有没有办法做到这一点?我找到了隔离物,但它找到了没有传入或传出边缘的边缘,我不希望这样。
如果G
是你的DiGraph
,你可以通过
(node for node, out_degree in G.out_degree_iter() if out_degree == 0)
"返回迭代器的方法已被删除">
在NetworkX 2.x中,所以@fuglede的答案需要一个小的更新:
(node for node, out_degree in G.out_degree() if out_degree == 0)
.out_degree在 2.x 中提供的视图/报告 API 提供了(node, out_degree)
对的 OutDegreeView,使这种方法比 @Fony Lew 的方法稍微简单一些。
我在out_degree_iter()
时遇到了问题,因为它返回错误。所以我在 NetworkX 文档中搜索了其他解决方案,发现这是有效的。(G
是一个DiGraph
(
[node for node in G.nodes if G.out_degree(node) == 0]
请注意,如果找到传入的度数或边缘。您只需从out_degree
更改为in_degree
参考:网络x。DiGraph.out_degree