46 lines
1.0 KiB
Python
46 lines
1.0 KiB
Python
|
from itertools import pairwise
|
||
|
|
||
|
|
||
|
def nove_povezave(pot, zemljevid):
|
||
|
return set(pairwise(pot)) - set(zemljevid)
|
||
|
|
||
|
|
||
|
def obiskane_tocke(pot):
|
||
|
return set(pot)
|
||
|
|
||
|
|
||
|
def popravljena_pot(pot):
|
||
|
return pot[::2] + pot[-1]
|
||
|
|
||
|
|
||
|
def povezave_z_vescino(pot, zemljevid, vescina):
|
||
|
return [povezava for povezava in pairwise(pot) if vescina in zemljevid[povezava]]
|
||
|
|
||
|
|
||
|
def dolgocasna_pot(pot, zemljevid):
|
||
|
return not all(map(zemljevid.get, pairwise(pot)))
|
||
|
|
||
|
|
||
|
def dobra_pot(pot, zemljevid):
|
||
|
return all(len(zemljevid[povezavva]) >= 2 for povezava in pairwise(pot))
|
||
|
|
||
|
|
||
|
def zahtevnost_poti(pot, zemljevid):
|
||
|
return max(len(zemljevid[povezavva]) for povezava in pairwise(pot))
|
||
|
|
||
|
|
||
|
def izvedljiva(pot, zemljevid, zivljenj):
|
||
|
return sum([povezava not in zemljevid for povezava in pairwise(pot)]) < zivljenj
|
||
|
|
||
|
|
||
|
def enosmerne(zemljevid):
|
||
|
return {(od, do) for od, do in zemljevid if (do, od) not in zemljevid}
|
||
|
|
||
|
|
||
|
def dvosmerne(zemljevid):
|
||
|
return {
|
||
|
povezava: vescine
|
||
|
for povezava, vescine in zemljevid.item()
|
||
|
if povezava[::-1] in zemljevid
|
||
|
}
|