Dictionaries zijn een van de meest veelzijdige en krachtige datatypes in Python. Ze stellen je in staat om gegevens op te slaan en te organiseren in key-value-paren, wat betekent dat elke waarde in de dictionary is gekoppeld aan een unieke sleutel. Denk aan een telefoonboek, waarbij de naam de sleutel is en het telefoonnummer de waarde. Dit maakt dictionaries perfect voor het snel opzoeken, updaten of manipuleren van gegevens. Laten we aan de slag gaan! 🎉
Dictionaries begrijpen #
Een dictionary is een geordende verzameling van key-value-paren (vanaf Python 3.7 is de volgorde gegarandeerd). De sleutels (keys) zijn uniek en moeten immutable zijn (bijvoorbeeld strings, getallen, of tuples), terwijl de waarden (values) van elk datatype kunnen zijn.
Hoe maak je een dictionary? Gebruik accolades {}
om een dictionary te maken. Key-value-paren worden gescheiden door een dubbele punt :
.
Voorbeeld:
persoon = {
"naam": "Alice",
"leeftijd": 30,
"beroep": "programmeur"
}
print(persoon)
PythonUitvoer:
{'naam': 'Alice', 'leeftijd': 30, 'beroep': 'programmeur'}
PythonHier is "naam"
een sleutel en "Alice"
de bijbehorende waarde. Hetzelfde geldt voor "leeftijd"
en 30
, en "beroep"
en "programmeur"
.
Toegang tot waarden #
Je kunt toegang krijgen tot een waarde in een dictionary door de sleutel te gebruiken tussen vierkante haken []
of met de methode get()
.
1. Toegang met dict[key]
#
print(persoon["naam"])
# Toont: Alice
PythonAls de sleutel niet bestaat, krijg je een fout:
print(persoon["adres"])
# KeyError: 'adres'
Python2. Toegang met get()
#
Met get()
kun je een standaardwaarde opgeven voor het geval de sleutel niet bestaat. Dit voorkomt fouten.
Voorbeeld:
print(persoon.get("adres", "Onbekend"))
# Toont: Onbekend
PythonMethoden en bewerkingen #
Dictionaries zijn flexibel: je kunt items toevoegen, verwijderen, en updaten.
1. Toevoegen van items #
Voeg een nieuw key-value-paar toe door een nieuwe sleutel aan te wijzen:
persoon["adres"] = "Amsterdam"
print(persoon)
# {'naam': 'Alice', 'leeftijd': 30,
#'beroep': 'programmeur', 'adres': 'Amsterdam'}
Python2. Updaten van waarden #
Je kunt de waarde van een bestaande sleutel wijzigen:
persoon["leeftijd"] = 31
print(persoon)
# {'naam': 'Alice', 'leeftijd': 31,
# 'beroep': 'programmeur', 'adres': 'Amsterdam'}
Python3. Verwijderen van items #
pop()
: Verwijdert een sleutel en retourneert de bijbehorende waarde.
adres = persoon.pop("adres")
print(adres) # Toont: Amsterdam
print(persoon)
# {'naam': 'Alice', 'leeftijd': 31,
# 'beroep': 'programmeur'}
Pythondel
: Verwijdert een sleutel zonder de waarde terug te geven.
del persoon["beroep"]
print(persoon)
# {'naam': 'Alice', 'leeftijd': 31}
Pythonclear()
: Verwijdert alle items uit de dictionary.
persoon.clear()
print(persoon)
# {}
PythonItereren door een dictionary #
Dictionaries hebben handige methoden om door hun sleutels, waarden of beide te itereren.
Nog moeite met loops? Kijk nog even naar het hoofdstuk over itereren:
1. Itereren door sleutels #
Met keys()
kun je door alle sleutels itereren:
for key in persoon.keys():
print(key)
PythonUitvoer:
naam
leeftijd
Python2. Itereren door waarden #
Met values()
kun je door alle waarden itereren:
for value in persoon.values():
print(value)
PythonUitvoer:
Alice
31
Python3. Itereren door sleutels en waarden #
Met items()
kun je door zowel de sleutels als de waarden itereren:
for key, value in persoon.items():
print(f"{key}: {value}")
PythonUitvoer:
naam: Alice
leeftijd: 31
PythonDict comprehensions #
Met een dict comprehension kun je een nieuwe dictionary maken op basis van een bestaande collectie, net zoals list comprehensions werken voor lijsten.
Voorbeeld: Lijst naar dictionary
woorden = ["appel", "banaan", "kers"]
woord_lengtes = {woord: len(woord) for woord in woorden}
print(woord_lengtes)
# {'appel': 5, 'banaan': 6, 'kers': 4}
PythonVoorbeeld: Filteren in een dictionary Je kunt bestaande items filteren terwijl je een nieuwe dictionary maakt:
persoon = {"Alice": 30, "Bob": 25, "Charlie": 35}
ouder_dan_30 = {naam: leeftijd for naam, leeftijd in persoon.items() if leeftijd > 30}
print(ouder_dan_30) # {'Charlie': 35}
PythonPraktische toepassingen van dictionaries #
1. Woordfrequentie tellen #
Dictionaries zijn geweldig voor het bijhouden van tellers, zoals hoe vaak een woord voorkomt in een tekst.
Voorbeeld:
tekst = "Python is geweldig. Python is eenvoudig."
woorden = tekst.split()
frequentie = {}
for woord in woorden:
frequentie[woord] = frequentie.get(woord, 0) + 1
print(frequentie)
PythonUitvoer:
{'Python': 2, 'is': 2, 'geweldig.': 1, 'eenvoudig.': 1}
Python2. Gegevens groeperen #
Dictionaries kunnen gegevens efficiënt groeperen en snel toegang bieden tot specifieke subsets.
Voorbeeld:
studenten = {
"Alice": {"leeftijd": 20, "cijfer": 8},
"Bob": {"leeftijd": 22, "cijfer": 7},
"Charlie": {"leeftijd": 21, "cijfer": 9},
}
print(studenten["Alice"]["cijfer"]) # Toont: 8
PythonVeelvoorkomende fouten en tips #
- Gebruik altijd unieke sleutels:
Als je een bestaande sleutel opnieuw gebruikt, wordt de oude waarde overschreven. - Let op met nested dictionaries:
Als een dictionary binnen een andere dictionary zit, heb je geneste toegang nodig. - Gebruik
get()
om fouten te voorkomen:
Metget()
kun je veilig toegang krijgen tot waarden zonder een foutmelding als de sleutel niet bestaat.
Samenvatting #
Dictionaries zijn een van de meest flexibele datatypes in Python. Ze stellen je in staat om gegevens te organiseren en te manipuleren met sleutels en waarden, wat perfect is voor scenario’s zoals het groeperen van gegevens, snel opzoeken, en tellen. Probeer zelf een paar dictionaries te maken en ontdek hoe ze je programmeren een stuk efficiënter maken! 🚀🎉