# graph["start"] ["e"] = 2
.....
# graph["e"] = {}
# graph["e"] ["a"] = 8
# graph["e"] ["d"] = 7
.......
# parents["e"] = "start"
# infinity = float("inf") #Бесконечность
# costs = {}
# costs["start"] = 0
# costs["fin"] = infinity
# # заполняем все не посещённые ещё узлы бесконечной стоимостью
# for k in graph:
# if k not in costs:
# costs[k] = infinity
infinity = float("inf") #Бесконечность
costs = {}
costs = {"start":0,
'a':infinity,
'b':infinity,
'c':infinity,
'd':infinity,
'fin':infinity}
Результат:
{'start': 0, 'a': 5, 'b': 9, 'c': inf, 'd': 7, 'fin': 8}