Dictionaries
Skriv lösningarna till uppgifterna i en och samma fil och testa koden själv innan du använder rättningsskriptet. Att kunna testa sin kod är en viktig del av att programmera!
Att lära dig från uppgifterna
- Lägga till nyckel-värde-par till ett dictionary.
- Slå upp värde i ett dictionary med hjälp av nyckel.
- Ändra värde för en nyckel i ett dictionary.
Man kan få max 50 poäng och för att få godkänt krävs 30 poäng (45 för väl godkänt). Försök dock att lösa alla uppgifter då inte alla fel upptäcks av rättningsskriptet. Om ni har lite marginal kan ni kanske bli godkända även om assistenten som rättar hittar något sådant fel.
Uppgift 10.1 (5p)
Skriv funktionen key_exists(key, d)
som tar in ett dictionary och returnerar True
om nyckeln key
finns bland dess nycklar. Annars returneras False
.
Tips: Använd operatorn in
.
Exempel
>>> key_exists('ett', {'ett': 'one', 'två': 'two'})
True
>>> key_exists('two', {'ett': 'one', 'två': 'two'})
False
>>> key_exists('två', {'ett': 'one', 'två': 'two'})
True
Uppgift 10.2 (5p)
Skriv funktionen value_exists1(value, d)
som tar in ett dictionary och returnerar True
om värdet value
finns bland dess värden. Returnera False
om det inte finns.
Antag att dictionaryt bara innehåller siffror eller strängar.
Tips: Använd operatorn in
.
Exempel
>>> value_exists1('one', {'ett': 'one', 'två': 'two'})
True
>>> value_exists1('två', {'ett': 'one', 'två': 'two'})
False
>>> value_exists1('two', {'ett': 'one', 'två': 'two'})
True
Uppgift 10.3 (5p)
Skriv funktionen update_dict_unsafe(key, value, d)
som lägger till värdet value
till ett dictionary d
. Du behöver inte ta hänsyn till huruvida värdet eller nyckeln redan finns i d
. Funktionen behöver inte returnera något.
Exempel
>>> d = {'one': 1, 'two': 2}
>>> update_dict_unsafe('three', 3, d)
>>> d
{'one': 1, 'two': 2, 'three': 3}
>>> update_dict_unsafe('three', 'tre', d)
>>> d
{'one': 1, 'two': 2, 'three': 'tre'}
Uppgift 10.4 (5p)
Skriv funktionen update_dict_safe(key, value, d)
som lägger till värdet value
till dictionaryt d
fast bara om nyckeln key
inte redan finns i d
. Funktionen behöver inte returnera något.
Exempel
Jämför sista raden i exemplet med exemplet för update_dict_unsafe
.
>>> d = {'one': 1, 'two': 2}
>>> update_dict_safe('three', 3, d)
>>> d
{'one': 1, 'two': 2, 'three': 3}
>>> update_dict_safe('three', 'tre', d)
>>> d
{'one': 1, 'two': 2, 'three': 3}
Uppgift 10.5 (10p)
Skriv funktionen increment_dict(key, d)
som tar in ett dictionary vars värden är heltal. Antag att nyckeln key
finns i d
. Funktionen ska lägga till 1 till värdet som tillhör nyckeln key
. Funktionen behöver inte returnera dictionaryt.
Exempel
>>> coin_flips = {'heads': 0, 'tails': 0}
>>> increment_dict('heads', coin_flips)
>>> increment_dict('tails', coin_flips)
>>> increment_dict('heads', coin_flips)
>>> coin_flips
{'heads': 2, 'tails': 1}
Uppgift 10.6 (10p)
Skriv funktionen increment_dict_default(key, d)
som tar in ett dictionary vars värden är heltal. Om nyckeln key
finns i d
ska dess värde ökas med 1. Om nyckeln inte finns i d
ska nyckeln läggas till och dess värde sättas till 1. Funktionen behöver inte returnera något.
Exempel
>>> coin_flips = dict()
>>> increment_dict_default('heads', coin_flips)
>>> coin_flips
{'heads': 1}
>>> increment_dict_default('tails', coin_flips)
>>> coin_flips
{'heads': 1, 'tails': 1}
>>> increment_dict_default('heads', coin_flips)
>>> coin_flips
{'heads': 2, 'tails': 1}
Uppgift 10.7 (10p)
Skriv en funktion pprint_dict(d)
som skriver ut en d
som i exemplet nedan. Det är inte tillåtet att slå upp värden med subskriptnotation, dvs. d[key]
. Nyckar och värden skall hämtas samtidigt från d
.
Tips: Metoden dict.items
är lämplig att använda.
Exempel
OBS! Ordningen på utskriften spelar ingen roll.
>>> pprint_dict({"one": 1, "two": 2, "three": 3})
one = 1
two = 2
three = 3
Sidansvarig: Johan Falkenjack
Senast uppdaterad: 2025-08-05