# Learn Algorithm Design by Building a Shortest Path Algorithm - Step 58

### Tell us what’s happening:

I don’t understand what does this mean ? can anyone help?

``````
# User Editable Region

my_graph = {
'A': [('B', 3), ('D', 1)],
'B': [('A', 3), ('C', 4)],
'C': [('B', 4), ('D', 7)],
'D': [('A', 1), ('C', 7)]
}

# User Editable Region

def shortest_path(graph, start, target = ''):
unvisited = list(graph)
distances = {node: 0 if node == start else float('inf') for node in graph}
paths = {node: [] for node in graph}
paths[start].append(start)

while unvisited:
current = min(unvisited, key=distances.get)
for node, distance in graph[current]:
if distance + distances[current] < distances[node]:
distances[node] = distance + distances[current]
if paths[node] and paths[node][-1] == node:
paths[node] = paths[current][:]
else:
paths[node].extend(paths[current])
paths[node].append(node)
unvisited.remove(current)

targets_to_print = [target] if target else graph
for node in targets_to_print:
if node == start:
continue
print(f'\n{start}-{node} distance: {distances[node]}\nPath: {" -> ".join(paths[node])}')

return distances, paths
shortest_path(my_graph, 'A')

``````

User Agent is: `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0`

### Challenge Information:

Learn Algorithm Design by Building a Shortest Path Algorithm - Step 58

Can you say more about what exactly you don’t understand?

I mean I don’t know how to do with this step

If there’s absolutely nothing more specific you can say, then I’d go back to Step 1. But I suspect you know some things about what the instructions say?

Do you know where the `my_graph` variable is? What is supposed to happen to that variable? A partial answer to that question is still forward progress!

Hi @Yuxiao

You should modify my_graph into the provided graph.

For this step you need to copy and paste the graph from the instructions.

This will become the new graph, replacing the old one.

Happy coding