Lexikon
See w3schools.com for an English discussion.
Ett lexikon eller avbildning (eng. dictionary) är en mängd par där varje element. Det första delen av paret kallas nyckel och den andra värde. Nyckeln är ofta en sträng men kan också vara t.ex. tal.
Konstruktor
Lexikon kan skapas genom att man räknar upp komponenterna inom {}-parenteser.
Nyckel och värde åtskiljs av kolon.
Exempel:
pris = {'äpplen': 12, 'bananer': 14, 'citroner': 20}
print(pris) # Prints {'äpplen': 12, 'bananer': 14, 'citroner': 20}
Operationer (operatorer, funktioner, metoder) för lexikon
Exempelkod | Värde | Kommentar |
---|---|---|
pris['bananer'] | 12 | Nycklarna kan användas som index. |
pris['bananer'] = 14 | Ändrar värdet för befintlig nyckel. | |
pris['bananer'] | 14 | |
pris['dadlar'] = 25 | Lägger till ny nyckel med värde. | |
pris | {'äpplen': 12, 'bananer': 14, 'citroner': 20, 'dadlar': 25} | Innehåller nu 4 par. |
'fikon' in pris | False | Test på existens av nyckel. |
'fikon' not in pris | True | Test på icke-existens av nyckel. |
'dadlar' in pris | True | Test på existens av nyckel. |
pris.get('dadlar') | 25 | Alternativ till pris['dadlar']. |
pris['fikon'] | Error | Illegalt. |
pris.get('fikon') | None | Om nyckeln inte existerar. |
pris.get('fikon', 'Varan finns ej') | Varan finns ej | Defaultvärde om nyckeln inte existerar. |
len(pris) | 4 | Antalet par. |
del pris['citroner'] | Tar bort ett element. | |
len(pris) | 3 | Antalet par. |
list(pris) | ['äpplen', 'bananer', 'dadlar'] | En lista av nycklarna. |
list(pris.items()) | [('äpplen, 12), ('bananer', 14), ('dadlar', 25)] | En lista av tupler (nyckel-värdepar). |
Att iterera över elementen i ett lexikon
Det går att iterera över ett lexikon på flera sätt. Exempel: Koden
for e in pris.items(): # e kommer successivt anta alla nyckel-värdepar
print(e)
producerar utskriften
('äpplen', 12)
('bananer', 14)
('dadlar', 25)
Eftersom variabeln e
innehåller en tupel med ett nyckel-värdepar
kan man ta ut delarna för att redigera utskriften.Exempel:
for e in pris.items():
print(e[0], ':', e[1])
som ger utskriften
äpplen : 12
bananer : 14
dadlar : 25
Detta resultat kan också åstadkommas med koden
for e in pris: # e kommer successivt anta alla nycklar
print(e, ':', pris[e]})
liksom av koden
for k, v in pris.items():
print(k, ':', v)
Om man vill ha utskriften sorterad efter nycklarna kan det, t ex, åstadkommas med
for e in sorted(pris.items()):
print(e[0], ':', e[1])
som ger utskriften
bananer : 14
dadlar : 25
äpplen : 12