''' Skriver oppgave 15 f?rst, da det gj?r l?sningen av 14 en god del lettere. prislister = [ ["Coop", "Norvegia 1kg", 104.99], ["Kiwi", "Blomk?l", 24.90], ... ] Din oppgave n? er ? skrive en prosedyre/funksjon som i forrige oppgave, men som istedet for ? skrive ut en oversikt over varene p? handlelista (f?rste parameter) returnerer et ordbokobjekt med den samme informasjonen. Vareid (str) er n?kkel og innholdsverdien er ei ny ordbok med prisinformasjon for butikkene som f?rer denne varen. Eks.: { vareid1: {'Coop' : 56.90, 'Kiwi' : 59.90, 'Rema' : 64.90, ... } , vareid2: {'Bunnpris' : 12.50, 'Spar' : 15.90, 'Coop' : 14.50, ... } , vareid3: {'Coop' : 99.90, 'Kiwi' : 89.90, 'Rema' : 99.90, ... } , vareid4: None } # vareid4 finnes ikke i noen butikk vareid-ene har type str. ''' def finn_butikker_med_varer(priser, handleliste): returordbok = {} for vare in handleliste: funnet_i_minst_1_butikk = False for kortliste in priser: vareid = kortliste[1] if vareid == vare: funnet_i_minst_1_butikk = True butikkid = kortliste[0] pris = kortliste[2] if vareid in returordbok: # da er det en ikke-tom ordbok p? denne n?kkelen returordbok[vareid][butikkid] = pris else: returordbok[vareid] = {} returordbok[vareid][butikkid] = pris if not funnet_i_minst_1_butikk: returordbok[vare] = None return returordbok # Testing, ikke i oppg: db = [ ["Coop", "Norvegia 1kg", 104.99], ["Kiwi", "Blomk?l", 24.90],["Coop", "Blomk?l", 24.90] ] hl = [ "vin", "Norvegia 1kg", "Blomk?l", "rosevin"] ob = finn_butikker_med_varer(db, hl) print(ob, "\n\n") ''' Oppgave 14 prislister = [ ["Coop", "Norvegia 1kg", 104.99], ["Kiwi", "Blomk?l", 24.90], ... ] Din oppgave er skrive en prosedyre/funksjon som har 2 parametre. F?rste parameter er ei liste med varerid (varenavn) og andre paremeter er ei liste som ovenfor. Funksjonen skal skrive ut en oversikt over hva hver vare p? handlelista koster i de forskjellige butikkene. Ei linje for hver vare, med varnavn (vareid) f?rst p? linje, s? et ':', deretter ei kommaseparert liste med butikk og pris for alle butikkene som har denne varen. Eks. for ei handliste med 4 varer: vareid1: Coop 56.90, Kiwi 59.90, Rema 64.90, ... vareid2: Bunnpris 12.50, Spar 15.90, Coop 14.50, ... vareid3: Coop 99.90, Kiwi 89.90, Rema 99.90, ... vareid4: Fant ikke denne varen i noen av listene ''' def oppgave14(priser, handleliste): ordbok = finn_butikker_med_varer(priser, handleliste) for vareid in ordbok: if ordbok[vareid] == None: print(vareid+': ', 'Fant ikke denne varen i noen av listene') else: linje = vareid +': ' for butikk in ordbok[vareid]: linje = linje + butikk + " " linje = linje + str(ordbok[vareid][butikk])+ ', ' print(linje[0:len(linje)-2]) # litt stygt, men bare for ? slette siste ',' oppgave14(db, hl) # testing ikke del av oppgaven # 4 + 3, eller 3 + 4 poeng avhenger av hvor mesteparten av logikken ligger. # Tilsammen maks 7 poeng