# 4a def lagPrislister(filnavn): prisliste = {} for linje in open(filnavn): deltLinje = linje.strip().split() butikk = deltLinje[0] vare = deltLinje[1] pris = deltLinje[2] if butikk not in prisliste: prisliste[butikk] = {} prisliste[butikk][vare] = float(pris) return prisliste # 4b class Butikk: def __init__(self): self._prisliste = {} def lagButikker(filnavn): prisliste = {} for linje in open(filnavn): deltLinje = linje.strip().split() butikk = deltLinje[0] vare = deltLinje[1] pris = deltLinje[2] if butikk not in prisliste: prisliste[butikk] = "" prisliste[butikk][vare] = pris for butikk in prisliste: prisliste[butikk] = Butikk(prisliste[butikk]) return prisliste # 4c def sjekk_billigste(priser, handleliste): totPris = 0 sjekket = [] totalPrisButikk = {} for butikk in priser: totalPrisButikk[butikk] = 0.0 for vare in handleliste: billigsteButikk = "" billigstePris = 99999.99 for butikk in priser: if vare in priser[butikk]: totalPrisButikk[butikk] += priser[butikk][vare] if priser[butikk][vare] <= billigstePris: billigstePris = priser[butikk][vare] billigsteButikk = butikk else: # varen finnes ikke i butikk, markerer dette ved ? legge til 1000000 totalPrisButikk[butikk] += 1000000.0 totPris += billigstePris if vare not in sjekket: sjekket.append(vare) print(vare + ": " + billigsteButikk) print("Pris hvis varene kj?pes i billigste butikk:", totPris) print("Hvis du bare har tid til ? g? i ¨Śn butikk, skal du handle disse varene hos:") totPris = 99999999.0 billigste = "" for butikk in totalPrisButikk: if totalPrisButikk[butikk] < totPris: billigste = butikk totPris = totalPrisButikk[butikk] print(billigste, totPris) print(totalPrisButikk) # Dette er ikke en del av oppgaven def testprogram(): prislister = lagPrislister("priser.txt") print(prislister) sjekk_billigste(prislister, ["Bananer", "Taco", "Kneip", "Laks", "Agurk", "Lettmelk", "Pizza"]) testprogram()