MultiGraph.get_edge_data#

MultiGraph.get_edge_data(u, v, key=None, default=None)[source]#

返回与边 (u, v, key) 相关联的属性字典。

如果没有提供键,则返回一个字典,该字典将边键映射到 u 和 v 之间每条边的属性字典。

这和 G[u][v][key] 相同,除了当边不存在时返回默认值而不是引发异常。

Parameters:
u, v节点
default任何 Python 对象(默认=None)

如果指定的边 (u, v, key) 未找到,或者 u 和 v 之间没有边且未指定键,则返回该值。

key可哈希标识符,可选(默认=None)

仅返回指定键的边的数据,作为一个属性字典(而不是将键映射到属性字典的字典)。

Returns:
edge_dict字典

边属性字典,或者如果没有提供特定键,则返回一个字典,该字典将边键映射到每条边的属性字典(即使 u 和 v 之间只有一条边)。

Examples

>>> G = nx.MultiGraph()  # 或 MultiDiGraph
>>> key = G.add_edge(0, 1, key="a", weight=7)
>>> G[0][1]["a"]  # key='a'
{'weight': 7}
>>> G.edges[0, 1, "a"]  # key='a'
{'weight': 7}

警告:我们通过使 G.edgesG[1][2] 成为只读的字典类结构来保护图数据结构。 然而,你可以通过额外的括号为属性赋值,例如 G.edges[1, 2, 'a']G[1][2]['a'] 。你需要指定所有边信息来分配与边相关联的边数据。

>>> G[0][1]["a"]["weight"] = 10
>>> G.edges[0, 1, "a"]["weight"] = 10
>>> G[0][1]["a"]["weight"]
10
>>> G.edges[1, 0, "a"]["weight"]
10
>>> G = nx.MultiGraph()  # 或 MultiDiGraph
>>> nx.add_path(G, [0, 1, 2, 3])
>>> G.edges[0, 1, 0]["weight"] = 5
>>> G.get_edge_data(0, 1)
{0: {'weight': 5}}
>>> e = (0, 1)
>>> G.get_edge_data(*e)  # 元组形式
{0: {'weight': 5}}
>>> G.get_edge_data(3, 0)  # 边不在图中,返回 None
>>> G.get_edge_data(3, 0, default=0)  # 边不在图中,返回默认值
0
>>> G.get_edge_data(1, 0, 0)  # 特定键返回
{'weight': 5}