[英]How to access the first neighbor of a node in NetworkX?
我在 NetworkX 中创建了一个TestClass
对象图。 我有两个TestClass
对象obj1
和obj2
,我想连接它们的第一个邻居。
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.