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 1:

pris = {'äpplen': 12, 'bananer': 14, 'citroner': 20} print(pris) # Prints {'äpplen': 12, 'bananer': 14, 'citroner': 20}
Exempel 2, studenter är tänkt att innehålla studenters resultat på ett prov.
Detta exempel visar att värdet kan vara exvis en lista:
studenter = {'Kim': None} # Inga resultat initialt, för enda studenten Kim print(studenter) # Prints {'Kim': None} # Värdet är None, innebär att den är ospecificerad

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).
studenter['Kim'] = [8] {'Kim': [8]} Resultat på provet uppgift 1 är 8 poäng.
Värdet är en lista med längden ett.
studenter['Kim'].append(14) {'Kim': [8, 14]} Resultat på provet uppgift 2 är 14 poäng.
Listan förlängs med ett element
studenter['Robin']: [5, 11] {'Kim': [8, 14], 'Robin': [5, 11]} Lägger in en ny student (nyckel) Robin. Resultat på provet uppgift 1 och 2 är 5 resp 11 poäng.

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

Tillbaka

Valid CSS!