# 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>
``````