Dictionaries i Python
Indhold på denne side
Hvad er en dictionary?
I Python er det muligt at skabe dictionaries ved hjælp af datatypen dict. Ligesom med lister, er en dictionary en samling af en eller flere værdier. Forskellen er, at genstandene i en dictionary består af en key (nøgle) som hører sammen med en value (værdi). Dette kaldes et key-value-pair (nøgle-værdi-par). Hver nøgle har en bestemt værdi. Denne værdi kan tilgås ved at benytte nøglen som indeks. I modsætning til lister, så står genstandene i en dictionary ikke i en bestemt rækkefølge.
Nedenstående kodestykke er et eksempel på hvordan en dictionary defineres:
Min_hund = {'Navn': 'Smilla', 'Alder': 5, 'Race': 'Golden Retriever', 'Farve': 'Hvid'}
Denne dictionary gemmes inde i variablen Min_hund. Genstandende er noteret mellem to tuborgklammer ( { } ). Hver genstand er adskilt med et komma. Hver genstand består af en nøgle, efterfulgt af et kolon, efterfulgt af nøglens værdi. Nedenstående skema viser hvad der er nøglen og hvad der er værdien i Min_hund:
Nøgle: | Værdi: |
---|---|
'Navn' | 'Smilla' |
'Alder' | 5 |
'Race' | 'Golden Retriever' |
'Farve' | 'Hvid' |
I nedenstående kodestykke udprintes Min_hund:
print(Min_hund)
Denne kode vil indlæse følgende:
{'Navn': 'Smilla', 'Alder': 5, 'Race': 'Golden Retriever', 'Farve': 'Hvid'}
Hent værdier i dictionary
For at hente en værdi i en dictionary, skal man skrive navnet på den dictionary som man vil hente en værdi fra, efterfulgt af to firkantede parenteser. Inde i parenteserne skrives navnet på nøglen til den værdi som man vil hente:
Min_hund = {'Navn': 'Smilla', 'Alder': 5, 'Race': 'Golden Retriever', 'Farve': 'Hvid'} x = Min_hund['Race'] print(x)
I ovenstående kodestykke skrives navnet på en dictionary, efterfulgt af to firkantede parenteser, hvor nøglen ‘Race’ er noteret indeni. Koden vil udprinte følgende:
Golden Retriever
Bemærk at metoden er den samme når man henter en værdi i en liste, men i stedet for at skrive et indekstal mellem de firkantede parenteser, så skriver man navnet på nøglen.
keys(), values() og items()
Hvis man vil nøjes med at indlæse nøglerne, værdierne eller genstandene, så skal man henholdvist benytte funktionerne keys(), values() eller items():
Min_hund = {'Navn': 'Smilla', 'Alder': 5, 'Race': 'Golden Retriever', 'Farve': 'Hvid'}
print('Nøglerne i Min_hund:')
print(Min_hund.keys())
print('Værdierne i Min_hund:')
print(Min_hund.values())
print('Genstandene i Min_hund:')
print(Min_hund.items())
I ovenstående kode udprintes nøglerne, værdierne og genstandene for Min_hund hver for sig:
Nøglerne i Min_hund: dict_keys(['Navn', 'Alder', 'Race', 'Farve']) Værdierne i Min_hund: dict_values(['Smilla', 5, 'Golden Retriever', 'Hvid']) Genstandene i Min_hund: dict_items([('Navn', 'Smilla'), ('Alder', 5), ('Race', 'Golden Retriever'), ('Farve', 'Hvid')])
Loop igennem en dictionary med for
Man kan loope igennem en dictionary med erklæringen for. Når man looper igennem en dictionary, så vil den kun udprinte nøglerne:
Min_hund = {'Navn': 'Smilla', 'Alder': 5, 'Race': 'Golden Retriever', 'Farve': 'Hvid'}
for x in Min_hund:
print(x)
Ovenstående kode vil udprinte nøglerne i Min_hund:
Navn Alder Race Farve
Man kan benytte erklæringerne keys(), values() eller items() til at specificere hvad der skal indlæses når man looper igennem en dictionary. Hvis man f.eks. vil have alle værdierne, så skal man benytte values():
for x in Min_hund.values():
print(x)
Dette kodestykke vil indlæse følgende:
Smilla 5 Golden Retriever Hvid
Tilføj værdier til dictionary
For at tilføje værdier til en dictionary skal man skrive listens navn efterfulgt af to firkantede parenteser som indeholder nøglen, efterfulgt af et lighedstegn efterfulgt af nøglens værdi. Det vil se sådan her ud:
Min_hund = {'Navn': 'Smilla', 'Alder': 5, 'Race': 'Golden Retriever', 'Farve': 'Hvid'}
Min_hund['Størrelse'] = 'Lille'
I ovenstående kodestykke er der blevet tilføjet en genstand til Min_hund som har nøglen ‘Størrelse‘ og værdien ‘Lille‘. Hvis man udprinter Min_hund, så vil den se sådan her ud:
{'Navn': 'Smilla', 'Alder': 5, 'Race': 'Golden Retriever', 'Farve': 'Hvid',
'Størrelse': 'Lille'}
Bemærk at genstanden er blevet tilføjet i slutningen af Min_hund.
Fjern værdier fra dictionary
Der er flere erklæringer og funktioner som kan benyttes til at slette værdier i en dictionary. De vil blive gennemgået her.
del
Med del kan man slette en bestemt værdi i en dictionary ved at angive nøglen:
Min_hund = {'Navn': 'Smilla', 'Alder': 5, 'Race': 'Golden Retriever', 'Farve': 'Hvid'}
del Min_hund['Race']
I ovenstående kodestykke angives erklæringen, efterfulgt at nøglen. Hvis man udprinter Min_hund, så vil listen nu se sådan her ud:
{'Navn': 'Smilla', 'Alder': 5, 'Farve': 'Hvid'}
Bemærk at genstanden som havde nøglen ‘Race‘ er blevet fjernet fra Min_hund.
clear()
Med clear() kan man tømme en dictionary for alle værdier:
Min_hund = {'Navn': 'Smilla', 'Alder': 5, 'Race': 'Golden Retriever', 'Farve': 'Hvid'}
Min_hund.clear()
I ovenstående kodestykke angives navnet på den dictionary som skal tømmes, efterfulgt af et punktum, efterfulgt af funktionen. Hvis man udprinter Min_hund, så vil listen nu se sådan her ud:
{}
Bemærk at Min_hund ikke er blevet slettet. Den er kun blevet tømt for indhold.
Erstat værdier i dictionary
For at erstatte værdier i en dictionary skal man skrive listens navn efterfulgt af to firkantede parenteser som skal indeholde den nøgle man vil ændre, efterfulgt af et lighedstegn, efterfulgt af den nye værdi som skal erstatte den gamle værdi. Det vil se sådan her ud:
Min_hund = {'Navn': 'Smilla', 'Alder': 5, 'Race': 'Golden Retriever', 'Farve': 'Hvid'}
Min_hund['Alder'] = 6
I ovenstående kodestykke er en værdi blevet erstattet i Min_hund som har nøglen ‘Alder‘ . Værdien er blevet ændret fra 5 til 6. Hvis man udprinter Min_hund, så vil den nu se sådan her ud:
{'Navn': 'Smilla', 'Alder': 6, 'Race': 'Golden Retriever', 'Farve': 'Hvid',
'Størrelse': 'Lille'}
Bemærk at alderen er blevet ændret fra 5 til 6.