From 44aa6d412e105e919e8dbd67800777c15c447c0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C5=A1per=20Dobrovoljc?= Date: Mon, 27 Nov 2023 14:35:33 +0100 Subject: [PATCH] =?UTF-8?q?06=5Fnaloga=20dem=C5=A1arjeve=20re=C5=A1itve?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 06_analiza_infrastrukture/naloga_demsar.py | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 06_analiza_infrastrukture/naloga_demsar.py diff --git a/06_analiza_infrastrukture/naloga_demsar.py b/06_analiza_infrastrukture/naloga_demsar.py new file mode 100644 index 0000000..72a7294 --- /dev/null +++ b/06_analiza_infrastrukture/naloga_demsar.py @@ -0,0 +1,45 @@ +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 + }