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

Please help me to solve this problem.

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.‘’

Your code so far

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

Your browser information:

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!

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.