我是python的初学者,如果我的问题很简单,请提前道歉! 我想创建一个图表并使用NetworkX来实现此目的。节点是对象。
但边缘也有很多动态属性。边缘可以是物体吗?如果是,怎么样?
答案 0 :(得分:1)
根据networkX documentation,这是向边添加属性的方法:
在命名“权重”属性时要特别小心,因为它将用作加权图表中的权重,如上所述。
关于你的问题“边缘可以是对象吗?” - 你可以创建一个对象(类),其中包含稍后将在边缘使用的信息。
例如:
class Edge:
def __init__(self, weight, someAttribute):
self.weight = weights
self.attribute = someAttribute
def otherFunction(self):
# Do/Store something
return 0;
您可以创建此类的实例,以便稍后使用它们使用netrworkX提供的语法创建边缘。
与节点相同,实际上你可以创建几乎任何东西的对象,这是OOP的重点。
答案 1 :(得分:-1)
也是初学者,但我一直在查看
提供的文档https://networkx.github.io/documentation/networkx-1.10/tutorial/tutorial.html
它说: 使用add_edge(),add_edges_from(),下标表示法或G.edge添加边缘属性。
>>> G.add_edge(1, 2, weight=4.7 )
>>> G.add_edges_from([(3,4),(4,5)], color='red')
>>> G.add_edges_from([(1,2,{'color':'blue'}), (2,3,{'weight':8})])
>>> G[1][2]['weight'] = 4.7
>>> G.edge[1][2]['weight'] = 4
所以看起来它有一个与边相关联的键值对的字典,希望能满足你的目的。