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': 12, 'citroner': 20}
print(pris)  # Prints {'äpplen': 12, 'bananer': 12, 'citroner': 20}

Operationer (operatorer, funktioner, metoder) för lexikon#

Exempelkod

Värde

Kommentar

pris['bananer']

12

Nycklarna kan användas som index (med hakparentes).

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

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', 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:   # e kommer successivt anta alla nycklar
    print(e, ':', pris[e]})

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 varan, priset in sorted(pris.items()):
    print(varan, ':', priset)

som ger utskriften

bananer : 14
dadlar : 25
äpplen : 12