cartesian_product#

cartesian_product(G, H)[source]#

返回 G 和 H 的笛卡尔积。

图 G 和 H 的笛卡尔积 P 的节点集是节点集的笛卡尔积,V(P)=V(G)×V(H)P 具有边 ((u,v),(x,y)) 当且仅当 u 等于 xvyH 中相邻,或者 v 等于 yuxG 中相邻。

Parameters:
G, H: 图

Networkx 图。

Returns:
P: NetworkX 图

G 和 H 的笛卡尔积。如果 G 或 H 是多图,则 P 将是多图。如果 G 和 H 是有向的,则 P 将是有向的,如果 G 和 H 是无向的,则 P 将是无向的。

Raises:
NetworkXError

如果 G 和 H 不都是有向的或都是无向的。

Notes

P 中的节点属性是 G 和 H 节点属性的二元组。 缺失的属性被赋值为 None。

Examples

>>> G = nx.Graph()
>>> H = nx.Graph()
>>> G.add_node(0, a1=True)
>>> H.add_node("a", a2="Spam")
>>> P = nx.cartesian_product(G, H)
>>> list(P)
[(0, 'a')]

边属性和边键(对于多图)也会被复制到新的积图。