web2 logo

Python Dictionaries

Dictionaries zijn lijsten die twee waarden met elkaar verbinden. In andere programmeertalen worden dit hashes, associative arrays en associative lists genoemd. Het zijn Lists, maar dan met op maat gemaakte indexen. De index is nu niet zomaar een nummer, maar heeft in een Dictionary echt een betekenis.
Het maken van een Dictionary gaat op gelijke wijze als het maken van een List, maar dan met gekrulde haken {} in plaats van vierkante haken.
Een nieuwe Dictionary mag ook leeg aangemaakt worden.

nieuwe_dictionary = {}

Een Dictionary kan ook gevuld worden tijdens het aanmaken.

fruit_kleur = {'Appels': 'geel', 'Bananen': 'geel', 'Peren': 'groen', 'Druiven': 'wit', 'Aardbeien': 'rood', 'Bessen': 'blauw', 'Citroenen': 'geel'}

De Dictionary zelf staat tussen gekrulde haken, de indexen en waarden worden van elkaar gescheiden door dubbele punten en de index-waarde combinaties worden van elkaar gescheiden door komma's. Voor de duidelijkheid kan dit over meerdere regels verdeeld worden, de interne structuur van de Dictionary heeft andere regels voor spaties als Python.
fruit_kleur = {'Appels': 'geel', 'Bananen': 'geel', 'Peren': 'groen', 'Druiven': 'wit', 'Aardbeien': 'rood', 'Bessen': 'blauw', 'Citroenen': 'geel' }

Elementen in een Dictionary benaderen

Het benaderen van elementen in een Dictionary lijkt op het benaderen van elementen in een list, maar nu is de index een specifieke waarde in plaats van een nummer. Het benaderen van elementen in een Dictionary via het nummer werkt niet, je moet dus weten welke waarden er in de dictionary staan.
fruit_kleur = {'Appels': 'geel', 'Bananen': 'geel', 'Peren': 'groen', 'Druiven': 'wit', 'Aardbeien': 'rood', 'Bessen': 'blauw', 'Citroenen': 'geel' } print(fruit_kleur['Citroenen'])

Elementen toevoegen aan een Dictionary

Dictionaries hebben geen genummerde index, dus het maakt niet uit in welke volgorde nieuwe elementen worden toegevoegd. Het toevoegen van een element aan een Dictionary lijkt op het maken van een nieuwe variabele.

fruit_kleur = {}
fruit_kleur['Appels'] = 'geel'

In een Dictionary kunnen niet alleen Strings gebruikt worden als index of waarde, maar ook andere datatypes kunnen hiervoor gebruikt worden. Dit maakt Dictionaries erg veelzijdig.

test_dict = {}
test_dict[3] = "Hond"
test_dict['Groen'] = 42
test_dict['een list'] = [2, 4, 6, 8, 10]
andere_dict = {'a': 1, 'b': 2, 'c': 3}
test_dict['een dict'] = andere_dict
print(test_dict)
print(test_dict['een dict'])
print(test_dict['een list'][1])

Elementen verwijderen uit een Dictionary

Elementen verwijderen kan met del. Je moet dan wel de index weten van het element dat je wilt verwijderen.
fruit_kleur = {'Appels': 'geel', 'Bananen': 'geel', 'Peren': 'groen', 'Druiven': 'wit', 'Aardbeien': 'rood', 'Bessen': 'blauw', 'Citroenen': 'geel' } del fruit_kleur['Bananen'] print(fruit_kleur)

Het resultaat:

{'Bessen': 'blauw', 'Aardbeien': 'rood', 'Peren': 'groen', 'Appels': 'geel', 'Citroenen': 'geel', 'Druiven': 'wit'}

De indexen van een Dictionary in een List plaatsen

De methode keys() kan gebruikt worden om de indexen van een Dictionary in een List te plaatsen.
fruit_kleur = {'Appels': 'geel', 'Bananen': 'geel', 'Peren': 'groen', 'Druiven': 'wit', 'Aardbeien': 'rood', 'Bessen': 'blauw', 'Citroenen': 'geel' } fruit_kleuren = fruit_kleur.keys() for naam in fruit_kleuren: print(naam)

Het resultaat:

Citroenen
Appels
Bessen
Peren
Bananen
Druiven
Aardbeien

De waarden in een Dictionary in een List plaatsen

De methode values() kan gebruikt worden om de waarden van een Dictionary in een List te plaatsen.
fruit_kleur = {'Appels': 'geel', 'Bananen': 'geel', 'Peren': 'groen', 'Druiven': 'wit', 'Aardbeien': 'rood', 'Bessen': 'blauw', 'Citroenen': 'geel' } fruit_kleuren = fruit_kleur.values() for kleuren in fruit_kleuren: print(kleuren)

Het resultaat:

rood
geel
geel
blauw
geel
wit
groen

Waarden uit een Dictionary in een String plaatsen

Met de % operator worden waarden via sleutels uit een Dictionary gehaald.
boek_info = { 'titel': 'Python is leuk', 'paginas': 456, 'pub_datum': 'December 2016', 'hoofdstukken': 21, } print("het boek heet %(titel)s en werd gepubliceerd in %(pub_datum)s. Het is %(paginas)d paginas dik en heeft %(hoofdstukken)d hoofdstukken." % boek_info)

Het resultaat:

het boek heet Python is leuk en werd gepubliceerd in December 2016. Het is 456 paginas dik en heeft 21 hoofdstukken.

Dictionaries doorlopen

Het doorlopen van Dictionaries vergt wat extra aandacht omdat we hier te maken hebben met gegevensparen, namelijk de index met de bijbehorende waarde.
fruit_kleur = {'Appels': 'geel', 'Bananen': 'geel', 'Peren': 'groen', 'Druiven': 'wit', 'Aardbeien': 'rood', 'Bessen': 'blauw', 'Citroenen': 'geel' } for kleur in fruit_kleur: print(kleur)

Je krijgt nu alle indexen, zonder de bijbehorende waarden.
De waarden er wel bij kan via:
fruit_kleur = {'Appels': 'geel', 'Bananen': 'geel', 'Peren': 'groen', 'Druiven': 'wit', 'Aardbeien': 'rood', 'Bessen': 'blauw', 'Citroenen': 'geel' } for naam, kleur in fruit_kleur.items(): print("Het fruit is %s en de kleur is %s." % (naam, kleur))

Twee dictionaries samenvoegen

De indexen in een dictionary zijn uniek, als je twee dictionaries samenvoegt waar gelijke indexen in voor komen, dan komt die index slechts eenmaal in de samengevoegde dictionary met de laatst toevoegde waarde.
fruit1 = {'Appels': 'geel', 'Bananen': 'groen'} fruit2 = {'Bananen': 'geel, 'Citroenen': 'geel'} samen = {**fruit1, **fruit2}
Het resulterende 'samen':
{'Appels': 'geel', 'Bananen': 'geel', 'Citroenen': 'geel'}
In 'fruit1' waren de bananen groen, in 'fruit2' zijn de bananen geel, in de samengeveogde dictionary zijn de bananen nu ook geel.

Toegevoegd door: Kees de Keijzer
Twitter: @kdkq

~ python ~

~ Onderwerpen ~

Dit is een website zonder pop-ups

~ Links ~

Design & Development by Cyberwebdesign.nl for web2.nl © 2020.