繁体   English   中英

如何访问 NetworkX 中节点的第一个邻居?

[英]How to access the first neighbor of a node in NetworkX?

我在 NetworkX 中创建了一个TestClass对象图。 我有两个TestClass对象obj1obj2 ,我想连接它们的第一个邻居。

代码

first_node = [node for node in G.nodes() if node==obj1][0]
second_node = [node for node in G.nodes() if node==obj2][0]                
G.add_edge(first_node.neighbours[0], second_node.neighbours[0])

我收到一条错误消息,指出TestClass object 没有属性neighbors

您如何访问这两个对象作为 Graph 中的节点以与它们的相邻节点一起工作?

使用方法Graph.neighbors(n)访问邻居,其中n是一个节点。

由于G.neighbors返回相邻节点上的迭代器,要使用列表访问器,您首先需要将迭代器包装在list初始值设定项中。

G.add_edge(list(G.neighbors(first_node))[0], list(G.neighbors(second_node))[0])

一种更简洁的方法是在迭代器上调用next() ,这样可以避免创建新的列表对象并消除索引访问器。

G.add_edge(next(G.neighbors(first_node)), next(G.neighbors(second_node)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM