0%

Dictionaries en andere verzamelingen · oefening

Maak en lees een dictionary

Een dictionaryliteral gebruikt accolades:

book = {
    "title": "Kindred",
    "creator": "Octavia E. Butler",
    "year": 1979,
}

Elk paar heeft drie onderdelen:

"title": "Kindred"
#  key       value

Een dubbele punt scheidt de sleutel van zijn waarde. Komma’s scheiden de paren van elkaar.

De komma na het laatste paar is optioneel. Door die te laten staan, kun je de dictionary makkelijker uitbreiden en volgt elk paar hetzelfde patroon.

Waarden kunnen verschillende typen hebben

Het voorbeeld bevat twee strings en één geheel getal. Dat is normaal:

event = {
    "name": "Python meetup",
    "seats": 40,
    "online": False,
}

Een dictionary brengt samenhangende feiten bij elkaar. De waarden hoeven niet hetzelfde type te hebben.

Gebruik voorlopig strings als sleutels. Python staat ook enkele andere onveranderbare typen als sleutel toe, maar veldnamen zoals "title" en "year" maken records voor beginners extra leesbaar.

Lees met een sleutel

Gebruik vierkante haken met de exacte sleutel:

print(book["title"])
print(book["year"])

Dit drukt het volgende af:

Kindred
1979

De spelling en hoofdletters van sleutels doen ertoe. "title" en "Title" zijn verschillende sleutels.

Een lege dictionary

Lege accolades maken een lege dictionary:

record = {}
print(type(record))

Tegen het einde van dit hoofdstuk leer je sets kennen. Sets gebruiken ook accolades wanneer ze waarden bevatten, maar {} betekent altijd een lege dictionary.

Vraag om een sleutel die bestaat

Bij het opzoeken met haken wordt verwacht dat de sleutel aanwezig is:

book["publisher"]

Als "publisher" ontbreekt, veroorzaakt Python een KeyError. Gebruik in deze les bekende sleutels. Les 4 geeft je twee bewuste manieren om met optionele velden om te gaan.

Welke waarde is een dictionary met de sleutels "name" en "score"?

Opdracht

Maak een dictionary met de naam book met precies deze paren:

SleutelWaarde
"title""Kindred"
"creator""Octavia E. Butler"
"year"1979

Gebruik daarna drie zoekopdrachten met haken om de waarden in precies deze volgorde af te drukken:

Kindred
Octavia E. Butler
1979