Slovníky (typ dictionary)

Slovník je typ pro ukládání dvojic klíč : hodnota. Můžete si ho představit jako seznam, ale indexovaný čímkoliv.

Prvky slovníku se zapisují do složených závorek { }, mezi klíčem a hodnotou je dvojtečka, dvojice klíč : hodnota jsou odděleny čárkami.

Uvnitř definice slovníku (uvnitř složených závorek) můžeme libovolně používat odsazení a nové řádky:

Hodnoty slovníku mohlou být jakéhokoliv datového typu:

Klíč slovníku může být jakýkoliv immutable typ - celé číslo, znakový řetězec nebo n-tice. V jednom slovníku mohou být klíče různých typů.

Úloha

Jak by vypadal kalendář, do kterého bychom mohli ukládát více úkolů k jednomu datu?

Přístup k prvku

K jednotlivým hodnotám ve slovníku, je možné přistupovat pomocí jejich klíče zapsaného v hranatých závorkách.

              ---------------------------
    klíč:    | "jméno" | "druh" | "vek" | 
              ---------------------------  
    hodnota: |  Čára"  |  "pes" |   5   |
              ---------------------------

Pokud zkoušíme přistoupit k prvku, který v seznamu není, dojde k chybě KeyError :

Změna prvku

Přidání prvku do slovníku

Odstranění prvku ze slovníku

Operátor in

Operátor in zjistí, jestli je klíč ve slovníku. Pokud ano, je výsledek True, pokud ne, výsledek je False.

Vypsání prvků slovníku

For cyklus prochází klíče slovníku:

    for klic in slovnik:
        print(klic)

Vypsání klíčů slovníku zvire1:

Vypsání klíče i hodnoty:

    for klic in slovnik:
        print( klic, slovnik[klic] )

Úloha:

Příklad:

Následujícím způsobem můžeme reprezentovat dvourozměrný svět, třeba pro robůtka nebo packmana. Použijeme tzv. řídkou matici, tedy ve slovníku budeme zaznamenávat jenom ta políčka, na kterých je něco důležitého.

Hvězdičkou si označíme potravu, znakem o díru.

K tomu musíme doplnit ještě rozměry světa...

...a už si můžeme svět vypsat: