intersection_all#
- intersection_all(graphs)[source]#
返回一个仅包含所有图中存在的节点和边的新图。
- Parameters:
- graphs可迭代对象
包含NetworkX图的可迭代对象
- Returns:
- R与列表中第一个图类型相同的新图
- Raises:
- ValueError
如果
graphs
是一个空列表。- NetworkXError
如果图中包含混合类型,如MultiGraph和Graph,或是有向图和无向图。
Notes
对于操作混合类型的图,应将它们转换为相同类型。
图、节点和边的属性不会复制到新图中。
如果需要,可以更新结果图的属性。例如,添加每个节点在所有图中的最小属性值的代码可以工作。 >>> g = nx.Graph() >>> g.add_node(0, capacity=4) >>> g.add_node(1, capacity=3) >>> g.add_edge(0, 1)
>>> h = g.copy() >>> h.nodes[0]["capacity"] = 2
>>> gh = nx.intersection_all([g, h])
>>> new_node_attr = { ... n: min(*(anyG.nodes[n].get("capacity", float("inf")) for anyG in [g, h])) ... for n in gh ... } >>> nx.set_node_attributes(gh, new_node_attr, "new_capacity") >>> gh.nodes(data=True) NodeDataView({0: {'new_capacity': 2}, 1: {'new_capacity': 3}})
Examples
>>> G1 = nx.Graph([(1, 2), (2, 3)]) >>> G2 = nx.Graph([(2, 3), (3, 4)]) >>> R = nx.intersection_all([G1, G2]) >>> list(R.nodes()) [2, 3] >>> list(R.edges()) [(2, 3)]