MultiGraph.edges#

property MultiGraph.edges#

返回一个边迭代器。

edges(self, nbunch=None, data=False, keys=False, default=None)

MultiEdgeView 在边元组上提供了类似集合的操作,以及边属性查找。调用时,它还提供了一个 EdgeDataView 对象,该对象允许控制对边属性的访问(但不提供类似集合的操作)。因此, G.edges[u, v, k]['color'] 提供了从 uv 且键为 k 的边的颜色属性的值,而 for (u, v, k, c) in G.edges(data='color', keys=True, default="red"): 遍历所有边,生成颜色属性,如果不存在颜色属性,则使用默认值 'red'

边以元组形式返回,可选数据和键,顺序为 (节点, 邻居, 键, 数据)。如果未提供 keys=True ,元组将仅为 (节点, 邻居, 数据),但当两个节点之间存在多条边时,会生成多个具有相同节点和邻居的元组。

Parameters:
nbunch单个节点、容器或所有节点(默认=所有节点)

视图将仅报告这些节点中的边。

data字符串或布尔值,可选(默认=False)

在 3 元组 (u, v, ddict[data]) 中返回边属性。 如果为 True,则在 3 元组 (u, v, ddict) 中返回边属性字典。 如果为 False,则返回 2 元组 (u, v)。

keys布尔值,可选(默认=False)

如果为 True,则返回每条边的键,生成 (u, v, k) 元组或 (u, v, k, d) 元组(如果也请求了数据)。

default值,可选(默认=None)

用于没有请求属性的边的值。仅在 data 既不是 True 也不是 False 时相关。

Returns:
edgesMultiEdgeView

边属性的视图,通常它迭代遍历 (u, v)、(u, v, k) 或 (u, v, k, d) 元组形式的边,但也可以用于属性查找,如 edges[u, v, k]['foo']

Notes

nbunch 中不在图中的节点将被(安静地)忽略。对于有向图,这将返回出边。

Examples

>>> G = nx.MultiGraph()
>>> nx.add_path(G, [0, 1, 2])
>>> key = G.add_edge(2, 3, weight=5)
>>> key2 = G.add_edge(2, 1, weight=2)  # 多重边
>>> [e for e in G.edges()]
[(0, 1), (1, 2), (1, 2), (2, 3)]
>>> G.edges.data()  # 默认数据为 {}(空字典)
MultiEdgeDataView([(0, 1, {}), (1, 2, {}), (1, 2, {'weight': 2}), (2, 3, {'weight': 5})])
>>> G.edges.data("weight", default=1)
MultiEdgeDataView([(0, 1, 1), (1, 2, 1), (1, 2, 2), (2, 3, 5)])
>>> G.edges(keys=True)  # 默认键为整数
MultiEdgeView([(0, 1, 0), (1, 2, 0), (1, 2, 1), (2, 3, 0)])
>>> G.edges.data(keys=True)
MultiEdgeDataView([(0, 1, 0, {}), (1, 2, 0, {}), (1, 2, 1, {'weight': 2}), (2, 3, 0, {'weight': 5})])
>>> G.edges.data("weight", default=1, keys=True)
MultiEdgeDataView([(0, 1, 0, 1), (1, 2, 0, 1), (1, 2, 1, 2), (2, 3, 0, 5)])
>>> G.edges([0, 3])  # 注意从列出的源节点开始的元组顺序
MultiEdgeDataView([(0, 1), (3, 2)])
>>> G.edges([0, 3, 2, 1])  # 注意元组顺序
MultiEdgeDataView([(0, 1), (3, 2), (2, 1), (2, 1)])
>>> G.edges(0)
MultiEdgeDataView([(0, 1)])