Jiný typ hodnot, které v sobě mohou obsahovat další hodnoty, je slovník. Pro příklad si představ překladový slovník, třeba česko-anglický:
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 klič Myš ukazuje na Mouse.
V Pythonu by se takový slovník napsal následovně:
>>> slovnik = {'Jablko': 'Apple', 'Knoflík': 'Button', 'Myš': 'Mouse'}
Naše klíče a hodnoty jsou slova – krátké texty, tedy řetězce, které je potřeba dát do uvozovek. Klíč a hodnota jsou 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 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řeboval/a druhý 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/a 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
Skvělé! Co víš o slovnících:
del
smazat.Jsi připraven/a na další část?