linnad={} for rida in open("linnadkaugustega.txt", "r"): m=rida.strip().split() abim=[sona.split(":") for sona in m[1:]] linnad[m[0]]={} for paar in abim: linnad[m[0]][paar[0]]=int(paar[1]) #print(linnad) alglinn="Tallinn" leitud=[{"nimetus":alglinn, "kaugus":0}] uuritud=[] while leitud: uuritav=leitud.pop() for linn in linnad[uuritav["nimetus"]]: print(linn, uuritav["kaugus"]+linnad[uuritav["nimetus"]][linn]) olemas=False lyhemad=[] for koht in leitud+uuritud: if koht["nimetus"]==linn: olemas=True print("leidis "+linn) if koht["kaugus"]>uuritav["kaugus"]+linnad[uuritav["nimetus"]][linn]: koht["kaugus"]=uuritav["kaugus"]+linnad[uuritav["nimetus"]][linn] print("tuli lyhem") lyhemad.append(koht) else: print("pole lyhem") for koht in lyhemad: uuritud.remove(koht) leitud.append(koht) if not olemas: leitud.append({"nimetus":linn, "kaugus":uuritav["kaugus"]+linnad[uuritav["nimetus"]][linn]}) print(leitud) uuritud.append(uuritav) #input() #Uuritute salvestamine puudu print(uuritud)