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

Tell us what’s happening:

Describe your issue in detail here.

what to write to show that unvisited is not empty in while loop.

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}
    paths[start].append(start)
    while len(unvisited) != 0 :
        pass
    print(f'Unvisited: {unvisited}\nDistances: {distances}\nPaths: {paths}')
    
#shortest_path(my_graph, 'A')

# User Editable Region

Your browser information:

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

Challenge Information:

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

You appear to have created this post without editing the template. Please edit your post to Tell us what’s happening in your own words.

The above is valid, but if you use the list itself as the condition, you obtain the same result. When the list contains elements it evaluates to True, while an empty list evaluates to False. So you don’t need to check the length of the list or use comparison. This is not explained but it will be added to the course.

so what’s to write in this code

You need to use the list itself as the condition.

while my_list:
    <code>

is equivalent to:

while len(my_list) != 0:
    <code>