Skip to main content
`Ctrl`+`K`

# Graph.to_directed

Graph.to_directed(as_view=False)

  Returns a directed representation of the graph.

  Returns:
    G DiGraph

      A directed graph with the same name, same nodes, and with each edge (u, v, data) replaced by two directed edges (u, v, data) and (v, u, data).

  Notes

  This returns a “deepcopy” of the edge, node, and graph attributes which attempts to completely copy all of the data and references.

  This is in contrast to the similar D=DiGraph(G) which returns a shallow copy of the data.

  See the Python copy module for more information on shallow and deep copies, https://docs.python.org/3/library/copy.html.

  Warning: If you have subclassed Graph to use dict-like objects in the data structure, those changes do not transfer to the DiGraph created by this method.

  Examples

      >>> G = nx.Graph()  # or MultiGraph, etc
      >>> G.add_edge(0, 1)
      >>> H = G.to_directed()
      >>> list(H.edges)
      [(0, 1), (1, 0)]

  If already directed, return a (deep) copy

      >>> G = nx.DiGraph()  # or MultiDiGraph, etc
      >>> G.add_edge(0, 1)
      >>> H = G.to_directed()
      >>> list(H.edges)
      [(0, 1)]