如何使用用户定义的类对象作为networkx节点?

如何使用用户定义的类对象作为networkx节点?,第1张

如何使用用户定义的类对象作为networkx节点

你在看

G[0]
。但这不是您想要的。
G[0]
包含有关节点的邻居
0
和边的属性的信息,但不包含有关节点的属性的信息
0

class point():    def __init__(self, x, y):        self.x = x        self.y = yimport networkx as nxG = nx.Graph()p0 = point(0,0)p1 = point(1,1)G.add_node(0, data=p0)G.add_node(1, data=p1)G.add_edge(0,1, weight=4)G[0]> AtlasView({1: {'weight': 4}})  #in networkx 1.x this is actually a dict. In 2.x it is an "AtlasView"

对于networkx,期望一个节点可能有很多与其关联的数据。在您的情况下,您只有一条数据,即该点。但是您可能还已经指定了颜色,权重,时间,年龄等。因此,networkx将所有属性存储在另一个字典中,但是该字典是通过

G.node[0]
而不是通过访问的
G[0]

G.node[0]> {'data': <__main__.point at 0x11056da20>}G.node[0]['data'].x> 0

请注意,

data
您输入的内容将成为字符串
'data'

输入像这样的节点可能会更好

G.add_node(0, x=0, y=0)
,然后您可以按那样访问条目
G.node[0]['x']



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5631649.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-15

发表评论

登录后才能评论

评论列表(0条)

    保存