import heapq
n = 3
L = [[0,1,1],[1,2,1],[0,2,5]]
start = 0
target = 2
m = 0
adjList = {}
for num,lv in enumerate(L):
if lv[0] in adjList:
adjList[lv[0]].add((lv[1],lv[2]))
else:
adjList[lv[0]]={(lv[1],lv[2])}
def dijkstra(adjList, start, target):
shortest = {}
minHeap = [(start,target)]
while minHeap:
w1, n1 = heapq.heappop(minHeap)
if n1 in shortest:
continue
shortest[n1] = w1
for n2, w2 in adjList[n1]:
if n2 not in shortest:
heapq.heappush(minHeap, (w1+w2, n2))
return shortest
print(dijkstra(adjList, start, target))
Traceback (most recent call last): File "/Users/samuel/PycharmProjects/pythonProject2/main.py", line 28, in print(dijkstra(adjList, start, target)) File "/Users/samuel/PycharmProjects/pythonProject2/main.py", line 22, in dijkstra for n2, w2 in adjList[n1]: KeyError: 2
I don't know why there is an error when I am trying to call adjList[n1]