Nauč se Python > Kurzy > Hadí workshop pro PyLadies > Úvod do Pythonu > Slovníky

Slovníky

Jiný typ hodnot, které v sobě mohou obsahovat další hodnoty, je slovník. Představ si překladový slovník, třeba tenhle česko-anglický:

  • Jablko: Apple
  • Knoflík: Button
  • Myš: Mouse

Slovník v Pythonu obsahuje záznamy, a každý záznam přiřazuje nějakému klíči nějakou hodnotu. V našem příkladu je klíči Jablko přiřazena hodnota Apple, klíči Knoflík náleží hodnota Button a klíč Myš ukazuje na Mouse.

V Pythonu by se takový slovník napsal následovně:

>>> slovnik = {'Jablko': 'Apple', 'Knoflík': 'Button', 'Myš': 'Mouse'}

Tyto klíče a hodnoty jsou slova – krátké texty, tedy řetězce, které je potřeba dát do uvozovek. Každý klíč je od své hodnoty oddělený dvojtečkou, jednotlivé dvojice se od sebe oddělují čárkou, a celý slovník je uzavřený ve složených závorkách.

Když budeš chtít v takovém slovníku něco najít, potřebuješ vědět co hledat. Potřebuješ klíč. Pomocí hranatých závorek můžeš zjistit hodnotu, která danému klíči odpovídá:

>>> slovnik['Jablko']
'Apple'

Je to podobné jako u seznamů, jen v hranatých závorkách není index (pořadí prvku) nebo rozmezí s dvojtečkou, ale právě klíč.

Naopak to nejde – slovník neumožňuje podle hodnoty přímo zjistit klíč. Na překlad z angličtiny do češtiny bys potřebovala druhý slovník.

Měnění slovníků

Co se stane, když klíč ve slovníku není?

>>> slovnik['Pes']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'Pes'

Python si postěžuje na KeyError – chybu klíče.

Podobně jako seznamy se ale slovníky dají měnit. Nový záznam vytvoříš takhle:

>>> slovnik['Pes'] = 'Dog'
>>> slovnik
{'Jablko': 'Apple', 'Knoflík': 'Button', 'Myš': 'Mouse', 'Pes': 'Dog'}

Na rozdíl od překladového slovníku nemusí být Pythonní slovník seřazený podle abecedy. Není to potřeba, počítač umí rychle vyhledávat i bez seřazení.

Kdybys potřebovala změnit už existující záznam, použij stejný příkaz. K jednomu klíči může patřit jen jedna hodnota.

>>> slovnik['Pes'] = 'Extension cord'
>>> slovnik
{'Jablko': 'Apple', 'Knoflík': 'Button', 'Myš': 'Mouse', 'Pes': 'Extension cord'}

Chceš-li ze zlovníku nějaký záznam smazat, dělá se to podobně jako u seznamů příkazem del:

>>> del slovnik['Pes']
>>> slovnik
{'Jablko': 'Apple', 'Knoflík': 'Button', 'Myš': 'Mouse'}

A když budeš chtít zjistit kolik je ve slovníku záznamů, zeptáš se podobně jako na počet znaků řetězce nebo prvků seznamu. Použiješ funkci len().

>>> len(slovnik)
3

Shrnutí

Skvělé! Co víš o slovnících:

  • Záznam se skládá z klíče a hodnoty.
  • Ve slovníku se hledá pomocí klíče.
  • Záznamy se dají přepsat, přidat, nebo pomocí del smazat.

Jsi připravena na další část?


Toto je stránka lekce z kurzu, který probíhá nebo proběhl naživo s instruktorem.