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

### Tell us what’s happening:

My code raised an error and I cannot see what it is. I think the indentation is okay. Is the problem with the .remove()? Thank you in advance

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

def shortest_path(graph, start):
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)

# User Editable Region

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

# User Editable Region

print(f'Unvisited: {unvisited}\nDistances: {distances}\nPaths: {paths}')

#shortest_path(my_graph, 'A')

``````

User Agent is: `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36`

### Challenge Information:

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

What does the error message say?

Learning to describe problems is hard, but it is an important part of learning how to code.

Also, the more you say, the more we can help!

My guess after looking at your code though is that you aren’t actually removing `current`. You’re supposed to be remove that letter from the unvisited list; not the paths.

1 Like

You should reset the step before troubleshooting this.

It looks like you accidentally changed this line.

1 Like