Lexikon
Ett lexikon eller avbildning (eng. dictionary) är en mängd av par (tupler med två 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 eller vissa typer av objekt.
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'] | 14 | Nycklarna kan användas som index (med hakparentes). | |
pris['bananer'] = 12 | Ändrar värdet för befintlig nyckel. | ||
pris['bananer'] | 12 | ||
pris['dadlar'] = 25 | Lägger till ny nyckel med värde. | ||
pris | {'äpplen': 12, 'bananer': 12, '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 | Andra parametern anger standardvärde som returneras om nyckeln inte existerar. | |
len(pris) | 4 | Antalet par. | |
del pris['citroner'] | Tar bort ett element utifrån nyckel. | ||
len(pris) | 3 | Antalet par. | |
list(pris) | list(pris.keys()) | ['äpplen', 'bananer', 'dadlar'] | En lista av nycklarna (två sätt). |
list(pris.items()) | [('äpplen, 12), ('bananer', 12), ('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', 12)
('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 : 12
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 varan, priset in sorted(pris.items()):
print(varan, ':', priset)
som ger utskriften
bananer : 12
dadlar : 25
äpplen : 12