Skip to main content
`Ctrl`+`K`

# dijkstra_path_length

dijkstra_path_length(G, source, target, weight='weight')

  Returns the shortest weighted path length in G from source to target.

  Uses Dijkstra’s Method to compute the shortest weighted path length between two nodes in a graph.

  Parameters:
    G NetworkX graph
    source node label

      starting node for path

    target node label

      ending node for path

    weight string or function

      If this is a string, then edge weights will be accessed via the edge attribute with this key (that is, the weight of the edge joining `u` to `v` will be `G.edges[u, v][weight]`). If no such edge attribute exists, the weight of the edge is assumed to be one.

      If this is a function, the weight of an edge is the value returned by the function. The function must accept exactly three positional arguments: the two endpoints of an edge and the dictionary of edge attributes for that edge. The function must return a number or None to indicate a hidden edge.

  Returns:
    length number

      Shortest path length.

  Raises:
    NodeNotFound

      If `source` is not in `G`.

    NetworkXNoPath

      If no path exists between source and target.

  See also

  `bidirectional_dijkstra`
  `bellman_ford_path_length`
  `single_source_dijkstra`

  Notes

  Edge weight attributes must be numerical. Distances are calculated as sums of weighted edges traversed.

  The weight function can be used to hide edges by returning None. So `weight = lambda u, v, d: 1 if d['color']=="red" else None` will find the shortest red path.

  The function `single_source_dijkstra()` computes both path and length-of-path if you need both, use that.

  Examples

      >>> G = nx.path_graph(5)
      >>> nx.dijkstra_path_length(G, 0, 4)
      4