Dictionaries er en liste der laves af par. Herunder har jeg lavet en dictionary bestående af brugerens navn og login.
I python vil det ud som herunder:
bruger_id = {
"Anne Hansen": "ah",
"Bent Ipsen" : "bi",
"Cecilie Jensen" : "cj"
}
Hvert element har altså en nøgle (f.eks. Anne Hansen) og en værdi (ah)
Efter du har kørt programmet, kan du udskrive listen:
>>> bruger_id {'Anne Hansen': 'ah', 'Bent Ipsen': 'bi', 'Cecilie Jensen': 'cj'}
Der findes 3 måder det kan gøres på:
>>> bruger_id
{'Anne Hansen': 'ah', 'Bent Ipsen': 'bi', 'Cecilie Jensen': 'cj'}
Her skal du tilføje .keys()
>>> bruger_id.keys()
dict_keys(['Anne Hansen', 'Bent Ipsen', 'Cecilie Jensen'])
Her skal du tilføje .values()
>>> bruger_id.values()
dict_values(['ah', 'bi', 'cj'])
For at udskrive en værdi, skal du bruge nøglen. Vil du have udskrivet Anne Hansens login, skal du skrive følgende:
>>> bruger_id["Anne Hansen"] 'ah'
For at tilføje brugeren Dennis Karlsen med brugernavnet dk skriver du:
>>> bruger_id["Dennis Karlsen"] = "dk"
>>> bruger_id
{'Anne Hansen': 'ah', 'Bent Ipsen': 'bi', 'Cecilie Jensen': 'cj', 'Dennis Karlsen': 'dk'}
Du kan ændre et element på 2 måder. Her ændres Dennis Karlsens brugernavn til ddkk
Metode 1
>>> bruger_id["Dennis Karlsen"]
'dk'
>>> bruger_id["Dennis Karlsen"] = "ddkk"
>>> bruger_id["Dennis Karlsen"]
'ddkk'
Metode 2
Her ændrer vi tilbage igen ved hjælp af .update()
:
>>> bruger_id.update({"Dennis Karlsen":"dk"})
>>> bruger_id["Dennis Karlsen"]
'dk'
Læg mærke til den krøllede parentes om ændringen.
For at fjerne et element bruger vi del
. Her fjerne vi Dennis karlsen
>>> del bruger_id["Dennis Karlsen"]
>>> bruger_id
{'Anne Hansen': 'ah', 'Bent Ipsen': 'bi', 'Cecilie Jensen': 'cj'}
Ligesom ved lister, tuplets og sets, kan du anvende .pop()
eller .popitem()
, hvis du vil bruge bruge output. Forskellen mellem de to er, at .pop()
fjerner en bestemt nøgle og .popitem()
fjerner den sidste:
>>> bruger_id.pop("Cecilie Jensen")
'cj'
>>> bruger_id
{'Anne Hansen': 'ah', 'Bent Ipsen': 'bi'}
>>> bruger_id.popitem()
('Bent Ipsen', 'bi')
>>> bruger_id
{'Anne Hansen': 'ah'}
For at slette et dictionary bruges du del
uden at skrive elementet:
>>> del bruger_id
>>> bruger_id.popitem()
Traceback (most recent call last):
File "<pyshell>", line 1, in <module>
NameError: name 'bruger_id' is not defined
Vi indlæser lige den oprindelige dictionary igen:
bruger_id = {
"Anne Hansen": "ah",
"Bent Ipsen" : "bi",
"Cecilie Jensen" : "cj",
}
For at kopiere en dictionary bruger du .copy()
>>> kopi_af_bruger_id = bruger_id.copy()
>>> kopi_af_bruger_id
{'Anne Hansen': 'ah', 'Bent Ipsen': 'bi', 'Cecilie Jensen': 'cj'}
For at finde antal af elementer i vores dictionary bruger vi .len()
>>> len(bruger_id)
3
>>> "Anne Hansen" in bruger_id
True
Vil du vide om en bestem værdi findes i et dictionary, skal du bruge .values()
>>> "ah" in bruger_id.values()
True
For at køre et dictionary som et loop kan du gøre følgende:
bruger_id = {
"Anne Hansen": "ah",
"Bent Ipsen" : "bi",
"Cecilie Jensen" : "cj",
}
for brugernavn, login in bruger_id.items():
print(f"{brugernavn} : {login}")
Anne Hansen : ah Bent Ipsen : bi Cecilie Jensen : cj
bruger_id = {
"Anne Hansen": "ah",
"Bent Ipsen" : "bi",
"Cecilie Jensen" : "cj",
}
for key in bruger_id.keys():
print(key)
Anne Hansen Bent Ipsen Cecilie Jensen
bruger_id = {
"Anne Hansen": "ah",
"Bent Ipsen" : "bi",
"Cecilie Jensen" : "cj",
}
for value in bruger_id.values():
print(value)
ah bi cj
Nogle gange er en nøgleværdi ikke nok se f.eks. dette eksempel
Det vil vi i Python skrive på følgende måde:
ansatte = {
"ansat1" : {
"Navn": "Anne Hansen",
"Brugernavn" : "ah",
},
"ansat2" : {
"Navn": "Bent Ipsen",
"Brugernavn" : "bi",
},
"ansat3" : {
"Navn": "Cecilie Jensen",
"Brugernavn" : "cj",
}
}
Vi laver en dictionary ... i vores dictionary.
Måden vi rammer de enkelte elementer er på følgende måde:
>>> ansatte["ansat1"]["Navn"] 'Anne Hansen'
Vi går ind i ansatte, fremsøger ansat1 og viser Navn
Herunder er vist hvordan du manipulerer med nestede dictionaries.
>>> ansatte["ansat4"] = {"Navn":"Dennis Karlsen","Brugernavn":"dk"}
>>> ansatte
{'ansat1': {'Navn': 'Anne Hansen', 'Brugernavn': 'ah'}, 'ansat2': {'Navn': 'Bent Ipsen', 'Brugernavn': 'bi'}, 'ansat3': {'Navn': 'Cecilie Jensen', 'Brugernavn': 'cj'}, 'ansat4': {'Navn': 'Dennis Karlsen', 'Brugernavn': 'dk'}}
>>> ansatte["ansat4"]["Brugernavn"] = "ddkk"
>>> ansatte["ansat4"]
{'Navn': 'Dennis Karlsen', 'Brugernavn': 'ddkk'}
>>> del ansatte["ansat4"]
>>> ansatte
{'ansat1': {'Navn': 'Anne Hansen', 'Brugernavn': 'ah'}, 'ansat2': {'Navn': 'Bent Ipsen', 'Brugernavn': 'bi'}, 'ansat3': {'Navn': 'Cecilie Jensen', 'Brugernavn': 'cj'}}
Du skal bruge samme metode som ved almindelige dictionaries. Her har jeg først lavet variabler af indholdet, for at gøre det lettere at se hvad der sker i printsætningen.
ansatte = {
"ansat1" : {
"Navn": "Anne Hansen",
"Brugernavn" : "ah",
},
"ansat2" : {
"Navn": "Bent Ipsen",
"Brugernavn" : "bi",
},
"ansat3" : {
"Navn": "Cecilie Jensen",
"Brugernavn" : "cj",
}
}
for i in ansatte:
navn = ansatte[i]["Navn"]
login = ansatte[i]["Brugernavn"]
print(f"{i} - {navn} : {login}")
ansat1 - Anne Hansen : ah ansat2 - Bent Ipsen : bi ansat3 - Cecilie Jensen : cj
Opret en dicionary med dig selv som bruger og opret en adgangskode. Lav en if/else struktur hvor du:
Lav en valutaomregnder ved hjælp af en dictionary funktionen valuta(a,b), hvor a er valutaen og b er beløbet.