Løsningsforslag 8
Oppgave 1
def shopping_list_to_dict(shopping_list_as_string):
shopping_list = {}
for line in shopping_list_as_string.split("\n"):
if not line:
continue
num, item = line.split()
shopping_list[item] = int(num)
return shopping_list
Oppgave 2
#Fra lab 6 oppgave 2 V23
def kmers(dna, k):
kmers = []
n = len(dna)
for i in range(n-k+1):
kmer = dna[i:i+k]
kmers.append(kmer)
return kmers
def kmercount(seq,k):
ret = {}
k_list = kmers(seq,k)
for k in k_list:
ret[k] = k_list.count(k)
return ret
Oppgave 3
def værvarsel(city,weather_stations):
r = ""
temp = weather_stations[city]["Temperatur"]
nedbør = weather_stations[city]["Nedbør"]
retning = weather_stations[city]["Vindretning"]
hastighet = weather_stations[city]["Vindkast"]
r += f"Ifølge yr vil temperaturen i {city} være rundt {temp} grader i dag.\n"
r += f"Det vil også være en nedbørsmengde på opptil {nedbør} mm i løpet av ett døgn.\n"
r += f"Vinden vil komme fra {retning} og kan nå vindkast på opptil {hastighet} m/s.\n"
return r
Oppgave 4
def key_value_getter(d):
r = ""
r += "Dictionary keys:\n"
for k in d:
r += f"{k}\n"
r += "Dictionary values:\n"
for v in d.values():
r += f"{v}\n"
r += "Dictionary keys/values:\n"
for k,v in d.items():
r += f"{k} {v}\n"
return r
Oppgave 5
def word_comparison(a,b):
s_1 = set(a)
s_2 = set(b)
snitt = set.intersection(s_1,s_2)
u_1 = s_1 - s_2
u_2 = s_2 - s_1
return {
"In common": snitt,
"Unique to first word": u_1,
"Unique to second word": u_2
}
Bonus 1 & 2
#Bonus 2
def addToInventory(inv:dict,loot:list):
for item in loot:
inv[item] = inv.get(item,0) +1
return inv
#Bonus 1
def displayInventory(stuff):
t = 0
r = ""
r += "Inventory:\n"
for k,v in stuff.items():
t += v
r += f"{v} {k}\n"
r += str(t)
return r
inv = {"gold coin": 42, "rope": 1}
dragonLoot = ["gold coin", "dagger", "gold coin", "gold coin", "ruby"]
inv = addToInventory(inv, dragonLoot)
print(displayInventory(inv))