Skip to main content
`Ctrl`+`K`

# lexicographic_product

lexicographic_product(G, H)

  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) \times 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: NetworkX graph

      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.

  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