Python Dictionary Fundamentals: Sleutels, Waarden en Toegang
Wat is een Dictionary?
Elke sleutel is gescheiden van zijn waarde door een dubbele punt (:), de items zijn gescheiden door komma's, en het geheel is omgeven door accolades. Een lege dictionary zonder items wordt geschreven met twee accolades: {}.
Sleutels zijn uniek binnen een dictionary, maar waarden hoeven niet uniek te zijn. De waarden van een dictionary kunnen van elk type zijn, maar de sleutels moeten van een immutable datatype zijn zoals strings, nummers of tuples.
Waarden in Dictionary Benaderen
Om dictionary-elementen te benaderen, kun je de bekende vierkante haken gebruiken samen met de sleutel om de waarde op te halen. Hier is een simpel voorbeeld:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Name']: ", dict['Name']
print "dict['Age']: ", dict['Age']
Wanneer de bovenstaande code wordt uitgevoerd, produceert dit het volgende resultaat:
dict['Name']: Zara dict['Age']: 7
Als we proberen een data-item te benaderen met een sleutel die niet deel uitmaakt van de dictionary, krijgen we een fout:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Alice']: ", dict['Alice']
Wanneer de bovenstaande code wordt uitgevoerd, produceert dit het volgende resultaat:
dict['Alice']: Traceback (most recent call last): File "test.py", line 4, inprint "dict['Alice']: ", dict['Alice'] KeyError: 'Alice'
Dictionary Updaten
Je kunt een dictionary updaten door een nieuwe entry of sleutel-waarde paar toe te voegen, een bestaande entry te wijzigen, of een bestaande entry te verwijderen, zoals getoond in het volgende simpele voorbeeld:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8 # Bestaande entry updaten
dict['School'] = "DPS School" # Nieuwe entry toevoegen
print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']
Wanneer de bovenstaande code wordt uitgevoerd, produceert dit het volgende resultaat:
dict['Age']: 8 dict['School']: DPS School
Dictionary Elementen Verwijderen
Je kunt afzonderlijke dictionary-elementen verwijderen of de volledige inhoud van een dictionary wissen. Je kunt ook de hele dictionary in één operatie verwijderen.
Om expliciet een volledige dictionary te verwijderen, gebruik je de del statement. Hier is een simpel voorbeeld:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del dict['Name'] # Verwijder entry met sleutel 'Name'
dict.clear() # Verwijder alle entries in dict
del dict # Verwijder volledige dictionary
print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']
Dit produceert het volgende resultaat. Let op dat een exception wordt gegooid omdat na del dict de dictionary niet meer bestaat:
dict['Age']: Traceback (most recent call last): File "test.py", line 8, inprint "dict['Age']: ", dict['Age'] TypeError: 'type' object is unsubscriptable
Let op – del()-methode wordt in de volgende sectie besproken.
Eigenschappen van Dictionary Sleutels
Dictionary-waarden hebben geen restricties. Ze kunnen elk willekeurig Python-object zijn, ofwel standaard-objecten of door de gebruiker gedefinieerde objecten. Hetzelfde geldt niet voor de sleutels.
Er zijn twee belangrijke punten om te onthouden over dictionary-sleutels:
(a) Meer dan één entry per sleutel is niet toegestaan. Dit betekent dat geen duplicaat-sleutel toegestaan is. Bij duplicaat-sleutels tijdens toewijzing wint de laatste toewijzing. Bijvoorbeeld:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print "dict['Name']: ", dict['Name']
Wanneer de bovenstaande code wordt uitgevoerd, produceert dit het volgende resultaat:
dict['Name']: Manni
(b) Sleutels moeten immutable zijn. Dit betekent dat je strings, nummers of tuples als dictionary-sleutels kunt gebruiken, maar iets als ['key'] is niet toegestaan. Hier is een simpel voorbeeld:
#!/usr/bin/python
dict = {['Name']: 'Zara', 'Age': 7}
print "dict['Name']: ", dict['Name']
Wanneer de bovenstaande code wordt uitgevoerd, produceert dit het volgende resultaat:
Traceback (most recent call last): File "test.py", line 3, indict = {['Name']: 'Zara', 'Age': 7} TypeError: unhashable type: 'list'
Ingebouwde Dictionary Functies & Methodes
Python bevat de volgende dictionary-functies:
| Nr. | Functie met Beschrijving |
|---|---|
| 1 | cmp(dict1, dict2) Vergelijkt elementen van beide dicts. |
| 2 | len(dict) Geeft de totale lengte van de dictionary. Dit is gelijk aan het aantal items in de dictionary. |
| 3 | str(dict) Produceren een printbare string-representatie van een dictionary. |
| 4 | type(variable) Retourneert het type van de doorgegeven variabele. Als de variabele een dictionary is, retourneert het een dictionary-type. |
Python bevat de volgende dictionary-methodes:
| Nr. | Methodes met Beschrijving |
|---|---|
| 1 | dict.clear() Verwijdert alle elementen van dictionary dict. |
| 2 | dict.copy() Retourneert een shallow copy van dictionary dict. |
| 3 | dict.fromkeys() Maakt een nieuwe dictionary met sleutels uit seq en waarden set op value. |
| 4 | dict.get(key, default=None) Voor key sleutel, retourneert waarde of default als sleutel niet in dictionary zit. |
| 5 | dict.has_key(key) Retourneert true als sleutel in dictionary dict zit, false anders. |
| 6 | dict.items() Retourneert een lijst van dict's (sleutel, waarde) tuple-paren. |
| 7 | dict.keys() Retourneert lijst van dictionary dict's sleutels. |
| 8 | dict.setdefault(key, default=None) Vergelijkbaar met get(), maar stelt dict[key]=default in als key nog niet in dict zit. |
| 9 | dict.update(dict2) Voegt dictionary dict2's sleutel-waarde paren toe aan dict. |
| 10 | dict.values() Retourneert lijst van dictionary dict's waarden. |
Python
- Python Datatypes onder de knie krijgen: Een praktische gids
- Python Operators onder de knie krijgen: Een uitgebreide gids
- Python Pass Statement onder de knie krijgen: Een praktische gids
- Python Functie-argumenten onder de knie krijgen: Positionele, Keyword en Default Parameters
- Python-dictionaries beheersen: aanmaken, manipuleren en geavanceerde technieken
- Python-iterators: hoe ze werken en hoe je je eigen maakt
- Python-closures uitgelegd: hoe geneste functies variabelen vangen
- Python datetime beheersen: praktische gids voor datums, tijden en tijdzones
- Python Overzicht: Hoog-Niveau, Leesbaar, Interactief & Object-Georiënteerd
- Python Numbers: Immutable Numerieke Datatypes Begrijpen
- Python Strings Beheersen: Aanmaken, Benaderen en Manipuleren