0%

Dictionaries en andere verzamelingen · oefening

Voeg dictionaryparen toe en wijzig ze

Dictionaries zijn veranderbaar. Een toewijzing met een sleutel kan een paar wijzigen of er één toevoegen.

Wijzig een bestaande waarde

Begin met een klein record:

profile = {
    "name": "Mina",
    "city": "Lisbon",
}

Wijs een waarde toe via de bestaande sleutel "city":

profile["city"] = "Porto"

De sleutel bestaat al, dus de waarde verandert:

print(profile)
# {'name': 'Mina', 'city': 'Porto'}

De dictionary krijgt er geen tweede paar met "city" bij. Sleutels zijn uniek.

Voeg een nieuw sleutel-waardepaar toe

Gebruik dezelfde syntaxis met een sleutel die niet aanwezig is:

profile["language"] = "Portuguese"

Nu heeft de dictionary drie paren:

{
    "name": "Mina",
    "city": "Porto",
    "language": "Portuguese",
}

De syntaxis is identiek. Of je iets toevoegt of wijzigt, hangt ervan af of de sleutel al bestaat.

Tel paren met len()

len() geeft aan hoeveel sleutel-waardeparen een dictionary bevat:

print(len(profile))
# 3

De functie telt niet de tekens in de sleutels of waarden.

De volgorde bepaalt niet de identiteit

Modern Python onthoudt de invoegvolgorde bij het tonen of doorlopen van een dictionary. Toch zijn sleutels de betekenisvolle manier om velden te vinden.

Deze dictionaries zijn gelijk bij een vergelijking:

first = {"name": "Mina", "city": "Porto"}
second = {"city": "Porto", "name": "Mina"}

print(first == second)
# True

Ze bevatten dezelfde sleutel-waardeparen, dus door hun verschillende invoegvolgorde zijn het geen verschillende records.

Wat is de waarde van len(item) aan het einde?

item = {"name": "Map", "price": 4}
item["price"] = 5
item["stock"] = 12
print(len(item))

Opdracht

Werk de bestaande dictionary profile bij.

  1. Verander "city" van "Lisbon" in "Porto".

  2. Voeg een nieuwe sleutel "language" toe met de waarde "Portuguese".

  3. Behoud de gegeven rapportregels.

Verwachte uitvoer:

Mina lives in Porto.
Language: Portuguese
Fields: 3