我们可以在使用Python NetworkX包生成的简单图中向单个边添加多个权重吗?

我们可以在使用Python NetworkX包生成的简单图中向单个边添加多个权重吗?,python,networkx,social-networking,Python,Networkx,Social Networking,在network.Graph.edges的以下文档中: 这说明了如何向边添加权重: G = nx.path_graph(3) G.add_edge(2, 3, weight=5) 我的问题是,我们可以在一个简单(不是多重)图中向同一条边添加多个权重吗 例如,我想创建一个简单的图表,描述在组织中工作的员工的联系网络。我的网络中的一个节点表示一名员工在创建网络时,我想在两名员工见面时在他们之间画一条边,但我想根据他们在一起执行不同类别的工作所花费的时间分配多个权重,例如,节点A和节点B在一个

在network.Graph.edges的以下文档中:

这说明了如何向边添加权重:

G = nx.path_graph(3)  
G.add_edge(2, 3, weight=5)
我的问题是,我们可以在一个简单(不是多重)图中向同一条边添加多个权重吗

例如,我想创建一个简单的图表,描述在组织中工作的员工的联系网络。我的网络中的一个节点表示一名员工在创建网络时,我想在两名员工见面时在他们之间画一条边,但我想根据他们在一起执行不同类别的工作所花费的时间分配多个权重,例如,节点A和节点B在一个项目上花费了5个小时,开会2小时,午餐1小时


感谢您提前回复。

您可以添加任意数量的边缘属性。例如:

>>> G.add_edge(2, 3, lunch_time=1, project_time=5, meeting_time=2)
>>> G.edges[2,3]
{'weight': 5, 'lunch_time': 1, 'project_time': 5, 'meeting_time': 2}
>>> G.edges[2,3]['lunch_time']
1

答案是否定的,但也没那么糟糕
G.add_edge(2,3,weight=5)
是一种方法,它给出字典
G.\u adj
中的指令更新键2和3,这是
nx.Graph()中内部使用的属性

更新后,它看起来是这样的:

G._adj={2:{3:{'weight':5},3:{2:{'weight':5}}}

因为字典中不能有相同的键,所以不可能将不同的值分配给相同的权重属性

为了存储花费的时间,您可以使用字典、元组、列表或任何其他对您有利的数据类型,例如:

G.add_edges(2, 3, weight = {'project': 5, 'meeting': 2, 'lunch':1})
它们也是单一值,应该是(至少在正常情况下)可计算的值