Adobe Systems F1420 – Slovníky 1 Slovníky 2 Kryštof Mrózek (445429@mail.muni.cz) Kristína Tomanková (kristinatomankova@mail.muni.cz) Radoslav Brunovský (rbrunovsky@mail.muni.cz) Adobe Systems 2 Opakovanie ̶Slovník je dátová štruktúra, do ktorej ukladáme hodnoty pomocou kľúčov ̶ ̶ ̶ ̶ ̶ kľúč: hodnota ̶Kľúč predstavuje index k danej hodnote ̶ názov slovníka F1420 – Slovníky Adobe Systems 3 Operácie so slovníkmi ̶Pridanie novej položky: slovnik[novy_kluc] = nova_hodnota ̶Odstránenie položky: del slovnik[kluc] iba odstráni slovnik.pop(kluc) odstráni a vráti slovnik.popitem() odstráni a vráti posledný pridaný kľúč ̶Zmena hodnoty u existujúceho kľúča: slovnik[kluc] = nova_hodnota F1420 – Slovníky Adobe Systems 4 Cvičenie ̶Znova si vezmite slovník zo súboru “Dict_index.py“. Z tohto slovníku odstráňte predmety a uložte ich do premennej p, prepíšte vek študentky na 18 a odstráňte známky. F1420 – Slovníky Adobe Systems 5 Cvičenie ̶Znova si vezmite slovník zo súboru “Dict_index.py“. Z tohto slovníku odstráňte predmety a uložte ich do premennej p, prepíšte vek študentky na 18 a odstráňte známky. F1420 – Slovníky Adobe Systems 6 Operácie so slovníkmi ̶Počet kľúčov: len(slovnik) ̶Získanie hodnoty pod kľúčom: slovnik.get(kluc) ̶Zlúčenie dvoch slovníkov: slovnik1.update(slovnik2) prepis starého slovníka slovnik3 = slovnik1 | slovnik2 vytvorenie nového slovníka ̶Vyprázdnenie slovníka: slovnik.clear() Obdobné ako slovnik[kluc], ALE pokiaľ sa tam daný kľúč nenachádza: slovnik[kluc] error slovnik.get(kluc) None F1420 – Slovníky Adobe Systems 7 Cvičenie ̶V študijných materiáloch nájdete súbor ‘Dict_teplota.py‘. V tomto súbore sa nachádzajú dva slovníky, ktoré obsahujú teploty v stupňoch Celzia namerané dvoma meteorologickými stanicami v Česku. Tieto dva slovníky spojte do jedného, vyprázdnite nepotrebný slovník/y a následne vypíšte teplotu v Jihlave. F1420 – Slovníky Adobe Systems 8 Cvičenie ̶V študijných materiáloch nájdete súbor ‘Dict_teplota.py‘. V tomto súbore sa nachádzajú dva slovníky, ktoré obsahujú teploty v stupňoch Celzia namerané dvoma meteorologickými stanicami v Česku. Tieto dva slovníky spojte do jedného, vyprázdnite nepotrebný slovník/y a následne vypíšte teplotu v Jihlave. F1420 – Slovníky Adobe Systems 9 Logické operácie so slovníkmi ̶Operátor in – overí či sa jeden objekt nachádza v druhom objekte F1420 – Slovníky Adobe Systems 10 Logické operácie so slovníkmi ̶Operátor in – overí či sa jeden objekt nachádza v druhom objekte ̶Vezmeme si znova slovník z “Dict_index.py“ zo študijných materiálov: ̶ ̶ ̶ ̶ ̶ ̶Cvičenie: Vyskúšajte si overiť, či sa ‘meno‘, ‘Mirka‘ a ‘matematika‘ nachádzajú v slovníku student. F1420 – Slovníky Adobe Systems 11 Logické operácie so slovníkmi ̶Operátor in – v prídpade slovníku overí či sa kľúč nachádza v slovníku F1420 – Slovníky Adobe Systems 12 Prístup k položkám slovníka ̶Metódy na získanie zoznamov jednotlivých položiek slovníka: slovnik.keys() zoznam kľúčov slovnik.values() zoznam hodnôt slovnik.items() zoznam párov “kľúč + hodnota“ (tuples) ̶Cvičenie: Vyskúšajte si tieto metódy na vašom slovníku student a overte, či sa ‘Mirka‘ a ‘matematika‘ nachádza v hodnotách slovníka. ̶ F1420 – Slovníky Adobe Systems 13 Iterovanie cez slovníky ̶V prípade iterovania cez slovník python implicitne iteruje cez jeho kľúče: ̶ ̶ ̶ ̶ ̶ ̶Cvičenie: Prepíšte for cyklus tak, aby sa vypisovali hodnoty slovníka a nie jeho kľúče. ̶ F1420 – Slovníky Adobe Systems 14 Iterovanie cez slovníky ̶Ak chceme iterovať cez kľúče a hodnoty zároveň, využijeme iterovanie cez viacero premenných: Zoznam položiek, ktoré majú samy o sebe dve pozície (páry = tuples) Dva indexy k položkám o dvoch pozíciách F1420 – Slovníky Adobe Systems 15 Cvičenie F1420 – Slovníky Adobe Systems 16 Cvičenie ̶Vezmite si znova slovník z ‘Dict_teplota.py‘. Pomocou for cyklu konvertujte teploty do jednotiek Fahrenheit a vytvorte nový slovník, ktorý bude obsahovať páry mesto: teplota v stupňoch Fahrenheita. ̶ F1420 – Slovníky Adobe Systems 17 Cvičenie ̶Vezmite si znova slovník z ‘Dict_teplota.py‘. Pomocou for cyklu konvertujte teploty do jednotiek Fahrenheit a vytvorte nový slovník, ktorý bude obsahovať páry mesto: teplota v stupňoch Fahrenheita. ̶ F1420 – Slovníky Adobe Systems 18 Záverečné cvičenie ̶V študijných materiáloch nájdete súbor ‘Dict_trasy.py‘. V tomto súbore sa nachádza slovník, ktorý obsahuje 3 rôzne trasy z Brna do Prahy, pričom sú dané ich vzdialenosti a časy. Napíšte funkciu, ktorá vezme slovník trás ako argument a spočíta veľkosť priemernej rýchlosti (v km/h) na každej trase. Funkcia následne vytvorí nový slovník, v ktorom budú zapísané trasy a rýchlosti ako “trasa: priemerná rýchlosť“ a tento slovník vráti. F1420 – Slovníky Adobe Systems 19 Pozn: Kopírovanie slovníka Pamäť počítača: a {‘one‘: 1, ‘two‘: 2} b a {‘one‘: 1, ‘two‘: 2} b {‘one‘: 1, ‘two‘: 2} F1420 – Slovníky