Slovar je podatkovna struktura, ki si jo lahko predstavljamo kot razširitev tabele in množice. Slovar vzdržuje množico parov oblike <ključ, vrednost>, pri čemer so vsi ključi v slovarju različni. Vsak par je zato enolično določen že s svojim ključem in vse operacije na njem izvajamo prek tega ključa. Ključe (in pripadajoče vrednosti) lahko dodajamo v slovar, brišemo iz njega, lahko pa za dani ključ preverimo, ali je prisoten v slovarju, in preberemo ali spremenimo njegovo pripadajočo vrednost.
Slovar je zato zelo podoben množici, pravzaprav ga dobimo tako, da v množici ob vsakem elementu (ključu) shranimo še pripadajočo vrednost. Po načinu uporabe pa je slovar zelo podoben tudi tabeli: pri tabeli imamo zbirko vrednosti, do katerih dostopamo prek indeksov, indeksi pa so mala cela števila od 0 naprej. Če poznamo indeks, lahko hitro in učinkovito preberemo ali zapišemo vrednost na tistem indeksu v tabeli. Pri slovarju je podobno, le da namesto indeksov za dostopanje do vrednosti uporabljamo ključe, ki so načeloma lahko poljubnega tipa, ne le majhna cela števila. Ključi so lahko na primer nizi (npr. imena in priimki), velika cela števila (kot je npr. EMŠO, ki je 13-mestno število), datumi, urejene n-terice in tako naprej.
Ime »slovar« izvira iz dejstva, da v tej strukturi lahko na podlagi ključa poiščemo pripadajočo vrednost, podobno kot v običajnem slovarju na podlagi besede poiščemo njeno razlago ali prevod v drug jezik. Drugo ime za to podatkovno strukturo pa je »preslikava«, ker nam preslika ključ v pripadajočo vrednost, podobno kot preslikave v matematiki.
Mnogi programski jeziki podpirajo slovar kot del jezika ali standardne knjižnice. V pythonu je delo s slovarjem podobno kot s tabelo. Nov slovar ustvarimo tako, da njegove elemente navedemo v zavitih oklepajih:
# h je slovar s tremi ključi h = {"ena": 1, "dve": 2, "tri": 3} # g je prazen slovar (brez ključev) g = {}
Spremenljivka h
v tem primeru vsebuje slovar s tremi ključi, ki so nizi "ena"
, "dve"
in "tri"
. Pripadajoča vrednost pri ključu "ena"
je celo število 1 in tako naprej.
Podobno kot pri množici tudi pri slovarju ključi nimajo nobenega posebnega vrstnega reda. V naslednjem primeru sta slovarja h
in g
na koncu enaka:
Tudi če slovar izpišemo s print
, se ključi ne izpišejo nujno v nekem posebnem vrstnem redu.
Vrednost, ki v slovarju pripada določenemu ključu, lahko preberemo z oglatimi oklepaji. Na enak način lahko to vrednost tudi spremenimo: