networkx.algorithms.operators.product.lexicographic_product¶
-
lexicographic_product
(G, H)[source]¶ Returns the lexicographic product of G and H.
The lexicographical product P of the graphs G and H has a node set that is the Cartesian product of the node sets, V(P)=V(G)×V(H). P has an edge ((u,v),(x,y)) if and only if (u,v) is an edge in G or u==v and (x,y) is an edge in H.
- Parameters
G, H (graphs) – Networkx graphs.
- Returns
P – The Cartesian product of G and H. P will be a multi-graph if either G or H is a multi-graph. Will be a directed if G and H are directed, and undirected if G and H are undirected.
- Return type
NetworkX graph
- Raises
NetworkXError – If G and H are not both directed or both undirected.
Notes
Node attributes in P are two-tuple of the G and H node attributes. Missing attributes are assigned None.
Examples
>>> G = nx.Graph() >>> H = nx.Graph() >>> G.add_node(0, a1=True) >>> H.add_node("a", a2="Spam") >>> P = nx.lexicographic_product(G, H) >>> list(P) [(0, 'a')]
Edge attributes and edge keys (for multigraphs) are also copied to the new product graph