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

They ask me to use dictonary comprehension and assign it to distances, but when I do that, I got this ‘’ You should use the dictionary comprehension syntax to give a value to your distances variable.‘’

``````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):
unvisited = list(graph)
distances = {node: [0] if node == start  else [float('inf')] for node in graph}
paths = {node: [] for node in graph}

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

shortest_path(my_graph, 'A')

# User Editable Region

``````

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

### Challenge Information:

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

I checked it many times. I can’t move on.

the values you give should not be lists, try again giving numbers as values instead of lists

Thanks for your reply. Running the following statement prompts the same message.

what have you tried?

distances = {node: 0 if node == start else [float(‘inf’)] for node in graph}

your else is still giving a list as value

1 Like

It works.thank you so much！