p1/06_analiza_infrastrukture/naloga.py

46 lines
1.1 KiB
Python
Raw Normal View History

2023-11-23 20:19:11 +00:00
from itertools import pairwise, groupby
def nove_povezave(pot, zemljevid):
return pairwise(pot) - zemljevid.keys()
def obiskane_tocke(pot):
return set(pot)
def popravljena_pot(pot):
return "".join(k for k, g in groupby(pot))
def povezave_z_vescino(pot, zemljevid, vescina):
return [p for p in pairwise(pot) if vescina in zemljevid[p]]
def dolgocasna_pot(pot, zemljevid):
return set() in (zemljevid[p] for p in pairwise(pot))
def dobra_pot(pot, zemljevid):
return not False in (len(zemljevid[p]) >= 2 for p in pairwise(pot))
def zahtevnost_poti(pot, zemljevid):
return max(len(zemljevid[p]) for p in pairwise(pot))
def izvedljiva(pot, zemljevid, zivljenj):
return sum(p not in zemljevid for p in pairwise(pot)) < zivljenj
def enosmerne(zemljevid):
return {p for p in zemljevid if not (p[1], p[0]) in zemljevid}
def dvosmerne(zemljevid):
return {k: v for k, v in zemljevid.items() if (k[1], k[0]) in zemljevid}
def najzahtevnejsi_odsek(pot, zemljevid):
return max((len(zemljevid[p]), p) for p in pairwise(pot))[1]