Co je slovník?
Zatím měla každá proměnná jednu hodnotu, třeba číslo nebo text, nebo seznam hodnot stejného druhu, například jmen vašich kamarádů. V této lekci poznáte slovníky. Slovník drží pohromadě několik hodnot, které popisují jednu věc, a každou z nich pojmenuje.
Představte si, že chcete mít v programu pár údajů o nějakém člověku: jméno, věk a město. Mohli byste je uložit do samostatných proměnných:
jmeno = "Anna"
vek = 21
mesto = "Brno"Pro jednoho člověka to funguje, ale pro deset lidí byste potřebovali třicet proměnných a z kódu by nebylo poznat, které k sobě patří. Hodnoty byste mohli dát také do seznamu:
osoba = ["Anna", 21, "Brno"]Teď jsou pohromadě, ale musíte si pamatovat, že na indexu 0 je jméno a na indexu 2 město. A co je osoba[1]? To z kódu nevyčtete.
Slovník řeší oba problémy. Drží hodnoty pohromadě a každou z nich pojmenuje:
osoba = {"jmeno": "Anna", "vek": 21, "mesto": "Brno"}Slovník se píše do složených závorek { }. Uvnitř jsou dvojice klíč–hodnota oddělené čárkami. Klíč je název hodnoty: "jmeno", "vek", "mesto". Obvykle je to text, a proto je v uvozovkách. Za klíčem následuje dvojtečka a za ní hodnota. Ta může být cokoli, co znáte: text, číslo, True nebo False, dokonce i seznam.
Klíč je text, takže by mohl obsahovat i diakritiku. Klíče, které pojmenovávají údaje, jako "jmeno" nebo "vek", ale budeme psát bez ní, stejně jako názvy proměnných. Když je klíčem skutečné slovo, třeba název jídla v menu, diakritiku mít může: "káva".
Proč „slovník“? Funguje podobně jako opravdový slovník: vyhledáte v něm slovo (klíč) a najdete u něj, co znamená (hodnotu).
Delší slovník se lépe čte, když je každá dvojice na vlastním řádku. Oba zápisy znamenají totéž. Když slovník vypíšete, Python ho ukáže na jednom řádku a text v něm dá do jednoduchých uvozovek, stejně jako u seznamů. Dvojice zůstanou v pořadí, v jakém jste je zapsali:
osoba = {
"jmeno": "Anna",
"vek": 21,
"mesto": "Brno"
}
print(osoba){'jmeno': 'Anna', 'vek': 21, 'mesto': 'Brno'}Slovník nespojujte s textem pomocí +. Nejde to, stejně jako to nejde s číslem: "Osoba: " + osoba skončí chybou TypeError: can only concatenate str (not "dict") to str (text jde spojit jen s textem, ne se slovníkem). Oddělte je raději čárkou, print("Osoba:", osoba), nebo použijte f-řetězec.
Typické chyby při psaní slovníku:
- Chybějící čárka mezi dvěma dvojicemi:
{"jmeno": "Anna", "vek": 21 "mesto": "Brno"}skončí chybouSyntaxError: invalid syntax. Perhaps you forgot a comma?(neplatný zápis, nezapomněli jste na čárku?). - Klíč bez uvozovek:
{jmeno: "Anna"}. Python si myslí, žejmenoje proměnná, a program skončí chybouNameError: name 'jmeno' is not defined. =místo dvojtečky:{"jmeno" = "Anna"}skončí chybouSyntaxError: cannot assign to literal here. Maybe you meant '==' instead of '='?Hláška vám moc nepomůže (==jste přece také nechtěli), a tak si ji zapamatujte: když ji uvidíte, hledejte=uvnitř složených závorek.
Jak psát:
Pokyny
Smažte tři proměnné i print(). Místo nich vytvořte proměnnou zvire se slovníkem, který má tyto dvojice v tomto pořadí: "jmeno" s hodnotou "Rex", "druh" s hodnotou "pes", "vek" s hodnotou 3 a "ockovany" s hodnotou True. Vypište ho pomocí print(zvire). Ve výpisu by se mělo objevit {'jmeno': 'Rex', 'druh': 'pes', 'vek': 3, 'ockovany': True}.
Pod to vypište slovník ještě jednou, tentokrát s popiskem Zvíře: na začátku. Nový řádek by měl být Zvíře: {'jmeno': 'Rex', 'druh': 'pes', 'vek': 3, 'ockovany': True}.
Začněte programovat zdarma
1/9