Woordenboeken

Een dictionary (of woordenboek) koppelt keys (sleutels) aan values (waarden).

Een woordenboek is een lijst van koppels (sleutel, waarde)

woordenboek = { "voornaam" : "Sven", 
                "naam" : "Vanhoecke", 
                "nationaliteit" : "Belg" }
print woordenboek["naam"] #Resultaat: "Vanhoecke"

De sleutels in bovenstaand voorbeeld zijn: "voornaam", "naam" en "nationaliteit".
De waarden in bovenstaand voorbeeld zijn (resp.): "Sven", "Vanhoecke" en "Belg".

.keys() en .values()

Om de lijst van alle sleutels te krijgen, gebruikt men de .keys()-methode.
Om de lijst van alle waarden te krijgen, gebruikt men de .values()-methode.

woordenboek = { "voornaam" : "Sven", "naam" : "Vanhoecke", "nationaliteit" : "Belg" }
print woordenboek.keys() #Resultaat: ['nationaliteit', 'naam', 'voornaam']
print woordenboek.values() #Resultaat: ['Belg', 'Vanhoecke', 'Sven']

Merk op dat de waarden niet gesorteerd zijn

sleutel in woordenboek

Met de in-operator kun je snel controleren of een sleutel reeds in het woordenboek zit. Je krijgt een True of een False als resultaat.

woordenboek = { "voornaam" : "Sven", "naam" : "Vanhoecke", "nationaliteit" : "Belg" }
print "geboortedatum" in woordenboek #Resultaat: False
print "voornaam" in woordenboek #Resultaat: True
print "Sven" in woordenboek #Resultaat: False (want "Sven" is geen sleutel, maar een waarde)

Enkel de lijst met sleutels wordt gecontroleerd!

Als je wil weten of er een waarde "Sven" bestaat, dan doe je het volgende

print "Sven" in woordenboek.values() #Resultaat: True

Een element toevoegen aan een woordenboek

In onderstaand voorbeeld voegen we het koppel "naam" : "Vanhoecke" toe aan het woordenboek.

woordenboek = {"voornaam":"Sven"}
woordenboek["naam"] = "Vanhoecke"
print woordenboek #Resultaat: { "voornaam" : "Sven", "naam" : "Vanhoecke" }

Over de bibliotheek lopen

Je kan op twee manieren over de bibliotheek lopen. De standaardmanier is op basis van de sleutels:

woordenboek = { "voornaam" : "Sven", "naam" : "Vanhoecke", "nationaliteit" : "Belg" }
for sleutel in woordenboek:
    print sleutel

Dit geeft als resultaat:

nationaliteit
naam
voornaam

Als je zowel de sleutel als de waarde wil gebruiken, dan is de .iteritems()-methode aangewezen.

woordenboek = { "voornaam" : "Sven", "naam" : "Vanhoecke", "nationaliteit" : "Belg" }
for sleutel, waarde in woordenboek.iteritems():
    print sleutel, "is", waarde

Dit geeft als resultaat:

nationaliteit is Belg
naam is Vanhoecke
voornaam is Sven

Een woordenboek maken door twee lijsten samen te plakken

Met de zip-functie kun je twee lijsten paarsgewijs samenvoegen.
Met de dict-functie kun je de resulterende lijst van koppels omzetten in een woordenboek.

sleutels = ["voornaam", "naam", "nationaliteit"]
waarden = ["Sven", "Vanhoecke", "Belg"]
lijstMetKoppels = zip(sleutels, waarden)

lijstMetKoppels ziet er als volgt uit:

[('voornaam', 'Sven'), ('naam', 'Vanhoecke'), ('nationaliteit', 'Belg')]

Om van de lijstMetKoppels een woordenboek te maken, doe je het volgende

woordenboek = dict(lijstMetKoppels)

woordenboek ziet er als volgt uit:

{'nationaliteit': 'Belg', 'naam': 'Vanhoecke', 'voornaam': 'Sven'}

Alles in ene keer:

sleutels = ["voornaam", "naam", "nationaliteit"]
waarden = ["Sven", "Vanhoecke", "Belg"]
woordenboek = dict( zip(sleutels, waarden) )