Vedle řetězců a celých čísel má Python další druhy hodnot.
Teď se podíváme na jeden, který se nazývá seznam (anglicky list). To je hodnota, která v sobě obsahuje jiné hodnoty.
Seznamy se zadávají tak, že dáš několik hodnot, oddělených čárkami, do hranatých závorek. Zkus si vytvořit třeba seznam čísel z loterie:
>>> [3, 42, 12, 19, 30, 59]
[3, 42, 12, 19, 30, 59]
Abys s takovým seznamem mohla pracovat, ulož si ho do proměnné:
>>> loterie = [3, 42, 12, 19, 30, 59]
Dobrá, máme seznam! Co s ním můžeme dělat? Podíváme se, kolik čísel v seznamu je. Dá se na to použít funkce, kterou už znáš. Tipneš si, která to je?
Teď si zkus seznam seřadit. Na to existuje metoda sort
:
>>> loterie.sort()
Tato metoda nic nevrátí, ale „potichu“ změní pořadí čísel v seznamu. Znovu si ho vypiš, ať vidíš co se stalo:
>>> loterie
[3, 12, 19, 30, 42, 59]
Čísla v seznamu jsou nyní seřazena od nejnižší k nejvyšší hodnotě.
Podobně funguje metoda reverse
, která obrátí pořadí prvků.
Vyzkoušej si ji!
>>> loterie.reverse()
>>> loterie
[59, 42, 30, 19, 12, 3]
Podobně jako u řetězců se seznamy dají spojovat pomocí +
:
>>> loterie + [5, 6, 7, 8]
[59, 42, 30, 19, 12, 3, 5, 6, 7, 8]
Tím se vytvoří nový seznam, ten původní zůstává nezměněný:
>>> loterie
[59, 42, 30, 19, 12, 3]
Pokud chceš něco přidat do původního seznamu, můžeš to provést pomocí metody
append
.
Ale pozor! Tahle metoda potřebuje vědět co má do seznamu přidat.
Nová hodnota se zadává do závorek:
>>> loterie.append(199)
Metoda opět nic nevrací, takže je potřeba seznam pro kontrolu vypsat:
>>> loterie
[59, 42, 30, 19, 12, 3, 199]
Když se budeš chtít na jednu věc ze seznamu podívat podrobněji, přijde vhod možnost vybrat si konkrétní prvek. Na to se v Pythonu používají hranaté závorky.
Chceš-li vybrat prvek, zadej jméno seznamu a hned za ním hranaté závorky s pořadovým číslem prvku, který chceš:
>>> loterie[1]
Dostaneš první prvek?
Číslu prvku se také říká index a procesu vybírání prvků indexování.
Zkus si indexování s dalšími indexy: 3, 100, 7, -1, -2, -6 nebo -100. Pokus se předpovědět výsledek před zadáním příkazu. Jak ti to půjde?
Chceš-li ze seznamu něco odstranit, můžeš opět použít indexy.
Tentokrát s příkazem del
.
Následujícím kódem odstraň počáteční číslo seznamu, tedy prvek číslo 0:
>>> del loterie[0]
Pak si seznam opět vypiš. Kousek chybí!
>>> loterie
[42, 30, 19, 12, 3, 199]
Zkusíš odstranit poslední prvek?
Občase se stane, že nechceš smazat prvek podle pozice, ale podle toho,
co v seznamu je.
K tomu slouží hodnota remove
, která najde a odstraní danou hodnotu:
>>> loterie
[42, 3]
>>> loterie.remove(3)
>>> loterie
[42]
Ze seznamu se dá kromě jednoho prvku vybrat i prvků několik – část seznamu, takzvaný podseznam.
Pojďme si opět udělat delší seznam čísel:
>>> cisla = ["První", "Druhý", "Třetí", "Čtvrtý"]
Budeš-li chtít vybrat prvky od druhého dál, dej do hranatých závorek číslo tohohle prvku, a za něj dvojtečku.
>>> cisla[1]
'Druhý'
>>> cisla[1:]
['Druhý', 'Třetí"', 'Čtvrtý']
Vybráním podseznamu se seznam nemění, tak můžeš vybírat dál:
>>> cisla
['První', 'Druhý', 'Třetí', 'Čtvrtý']
>>> cisla[1:]
['Druhý', 'Třetí"', 'Čtvrtý']
>>> cisla[2:]
['Třetí', 'Čtvrtý']
>>> cisla[3:]
['Čtvrtý']
>>> cisla[4:]
[]
Budeš-li chtít vybrat prvky od začátku do některého prvku, dej dvojtečku před číslo prvku, který už ve výsledku nechceš
>>> cisla[2]
'Třetí'
>>> cisla[:2]
['První', 'Druhý']
Úkol: máš-li nějaký seznam, jak z něj vybereš všechny prvky kromě posledního?
Začátek a konec se dá kombinovat – číslo můžeš dát před i za dvojtečku:
>>> cisla
['První', 'Druhý', 'Třetí', 'Čtvrtý']
>>> cisla[1:-1]
['Druhý', 'Třetí']
Řezání funguje i pro příkaz del
.
Zkus vymazat prostřední dvě čísla:
>>> cisla
['První', 'Druhý', 'Třetí', 'Čtvrtý']
>>> del cisla[1:-1]
>>> cisla
['První', 'Čtvrtý']
Hranaté závorky fungují i u řetězců, kde vybírají písmenka:
>>> jidlo = 'čokoláda'
>>> jidlo[3]
'o'
>>> jidlo[1:4]
'oko'
Představ si, že máš v proměnné jmeno
ženské jméno jako 'Ola'
,
'Krystýna'
nebo 'Růžena'
.
Jak z něj vytvoříš druhý pád (např. bez 'Růženy'
)?
Uf! O seznamech toho bylo k naučení celkem hodně. Shrňme si, co už umíš:
sort
) a obrátit (reverse
),
nebo se do něj dá přidat (append
) či odebrat (remove
) prvek.del
) podle indexu.Jsi připravena na další část?
{ "data": { "sessionMaterial": { "id": "session-material:2019/brno-jaro-snake:intro:5", "title": "Seznamy", "html": "\n \n \n\n <h1>Seznamy</h1>\n<p>Vedle řetězců a celých čísel má Python další druhy hodnot.</p>\n<p>Teď se podíváme na jeden, který se nazývá <em>seznam</em> (anglicky <em>list</em>).\nTo je hodnota, která v sobě obsahuje jiné hodnoty.</p>\n<p>Seznamy se zadávají tak, že dáš několik hodnot, oddělených čárkami,\ndo hranatých závorek.\nZkus si vytvořit třeba seznam čísel z loterie:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"p\">[</span><span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"mi\">42</span><span class=\"p\">,</span> <span class=\"mi\">12</span><span class=\"p\">,</span> <span class=\"mi\">19</span><span class=\"p\">,</span> <span class=\"mi\">30</span><span class=\"p\">,</span> <span class=\"mi\">59</span><span class=\"p\">]</span>\n<span class=\"go\">[3, 42, 12, 19, 30, 59]</span>\n</pre></div><p>Abys s takovým seznamem mohla pracovat,\nulož si ho do proměnné:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">loterie</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"mi\">42</span><span class=\"p\">,</span> <span class=\"mi\">12</span><span class=\"p\">,</span> <span class=\"mi\">19</span><span class=\"p\">,</span> <span class=\"mi\">30</span><span class=\"p\">,</span> <span class=\"mi\">59</span><span class=\"p\">]</span>\n</pre></div><p>Dobrá, máme seznam! Co s ním můžeme dělat?\nPodíváme se, kolik čísel v seznamu je.\nDá se na to použít funkce, kterou už znáš.\nTipneš si, která to je?</p>\n<div class=\"solution\" id=\"solution-0\">\n <h3>Řešení</h3>\n <div class=\"solution-cover\">\n <a href=\"/2019/brno-jaro-snake/fast-track/list/index/solutions/0/\"><span class=\"link-text\">Ukázat řešení</span></a>\n </div>\n <div class=\"solution-body\" aria-hidden=\"true\">\n <div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"n\">loterie</span><span class=\"p\">)</span>\n<span class=\"go\">6</span>\n</pre></div><p>Funkce <code>len()</code> umí zjistit nejen délku řetězce, ale i délku seznamu – tedy\npočet jeho prvků.</p>\n </div>\n</div><p>Teď si zkus seznam seřadit. Na to existuje metoda <code>sort</code>:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">loterie</span><span class=\"o\">.</span><span class=\"n\">sort</span><span class=\"p\">()</span>\n</pre></div><p>Tato metoda nic nevrátí, ale „potichu“ změní pořadí čísel v seznamu.\nZnovu si ho vypiš, ať vidíš co se stalo:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">loterie</span>\n<span class=\"go\">[3, 12, 19, 30, 42, 59]</span>\n</pre></div><p>Čísla v seznamu jsou nyní seřazena od nejnižší k nejvyšší hodnotě.</p>\n<p>Podobně funguje metoda <code>reverse</code>, která obrátí pořadí prvků.\nVyzkoušej si ji!</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">loterie</span><span class=\"o\">.</span><span class=\"n\">reverse</span><span class=\"p\">()</span>\n<span class=\"gp\">>>> </span><span class=\"n\">loterie</span>\n<span class=\"go\">[59, 42, 30, 19, 12, 3]</span>\n</pre></div><h2>Přidávání do seznamu</h2>\n<p>Podobně jako u řetězců se seznamy dají spojovat pomocí <code>+</code>:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">loterie</span> <span class=\"o\">+</span> <span class=\"p\">[</span><span class=\"mi\">5</span><span class=\"p\">,</span> <span class=\"mi\">6</span><span class=\"p\">,</span> <span class=\"mi\">7</span><span class=\"p\">,</span> <span class=\"mi\">8</span><span class=\"p\">]</span>\n<span class=\"go\">[59, 42, 30, 19, 12, 3, 5, 6, 7, 8]</span>\n</pre></div><p>Tím se vytvoří nový seznam, ten původní zůstává nezměněný:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">loterie</span>\n<span class=\"go\">[59, 42, 30, 19, 12, 3]</span>\n</pre></div><p>Pokud chceš něco přidat do původního seznamu, můžeš to provést pomocí metody\n<code>append</code>.\nAle pozor! Tahle metoda potřebuje vědět co má do seznamu přidat.\nNová hodnota se zadává do závorek:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">loterie</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"mi\">199</span><span class=\"p\">)</span>\n</pre></div><p>Metoda opět nic nevrací, takže je potřeba seznam pro kontrolu vypsat:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">loterie</span>\n<span class=\"go\">[59, 42, 30, 19, 12, 3, 199]</span>\n</pre></div><h2>Vybírání prvků</h2>\n<p>Když se budeš chtít na jednu věc ze seznamu podívat podrobněji,\npřijde vhod možnost vybrat si konkrétní prvek.\nNa to se v Pythonu používají hranaté závorky.</p>\n<p>Chceš-li vybrat prvek, zadej jméno seznamu a hned za ním hranaté závorky\ns pořadovým číslem prvku, který chceš:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">loterie</span><span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">]</span>\n</pre></div><p>Dostaneš první prvek?</p>\n<div class=\"solution\" id=\"solution-1\">\n <h3>Řešení</h3>\n <div class=\"solution-cover\">\n <a href=\"/2019/brno-jaro-snake/fast-track/list/index/solutions/1/\"><span class=\"link-text\">Ukázat řešení</span></a>\n </div>\n <div class=\"solution-body\" aria-hidden=\"true\">\n <div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">loterie</span>\n<span class=\"go\">[59, 42, 30, 19, 12, 3, 199]</span>\n<span class=\"gp\">>>> </span><span class=\"n\">loterie</span><span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">]</span>\n<span class=\"go\">42</span>\n</pre></div><p>Ne, dostaneš druhý prvek.</p>\n<p>Programátoři počítají od nuly.\nChceš li tedy první prvek, popros Python o prvek číslo nula:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">loterie</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span>\n<span class=\"go\">42</span>\n</pre></div><p>Je to zpočátku divné, ale dá se na to zvyknout.</p>\n </div>\n</div><p>Číslu prvku se také říká <em>index</em> a procesu vybírání prvků <em>indexování</em>.</p>\n<p>Zkus si indexování s dalšími indexy: 3, 100, 7, -1, -2, -6 nebo -100.\nPokus se předpovědět výsledek před zadáním příkazu.\nJak ti to půjde?</p>\n<div class=\"solution\" id=\"solution-2\">\n <h3>Řešení</h3>\n <div class=\"solution-cover\">\n <a href=\"/2019/brno-jaro-snake/fast-track/list/index/solutions/2/\"><span class=\"link-text\">Ukázat řešení</span></a>\n </div>\n <div class=\"solution-body\" aria-hidden=\"true\">\n <div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">loterie</span>\n<span class=\"go\">[59, 42, 30, 19, 12, 3, 199]</span>\n\n<span class=\"gp\">>>> </span><span class=\"n\">loterie</span><span class=\"p\">[</span><span class=\"mi\">3</span><span class=\"p\">]</span>\n<span class=\"go\">19</span>\n</pre></div><p>Index 3 označuje čtvrtý prvek.</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">loterie</span><span class=\"p\">[</span><span class=\"mi\">7</span><span class=\"p\">]</span>\n<span class=\"gt\">Traceback (most recent call last):</span>\n File <span class=\"nb\">"<stdin>"</span>, line <span class=\"m\">1</span>, in <span class=\"n\"><module></span>\n<span class=\"gr\">IndexError</span>: <span class=\"n\">list index out of range</span>\n</pre></div><p>Prvek s indexem 100 v seznamu není – nastane chyba.</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">loterie</span><span class=\"p\">[</span><span class=\"mi\">1000</span><span class=\"p\">]</span>\n<span class=\"gt\">Traceback (most recent call last):</span>\n File <span class=\"nb\">"<stdin>"</span>, line <span class=\"m\">1</span>, in <span class=\"n\"><module></span>\n<span class=\"gr\">IndexError</span>: <span class=\"n\">list index out of range</span>\n</pre></div><p>Prvek s indexem 7 v seznamu taky není.</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">loterie</span><span class=\"p\">[</span><span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"p\">]</span>\n<span class=\"go\">199</span>\n</pre></div><p>Index -1 označuje <em>poslední</em> prvek.</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">loterie</span><span class=\"p\">[</span><span class=\"o\">-</span><span class=\"mi\">2</span><span class=\"p\">]</span>\n<span class=\"go\">3</span>\n</pre></div><p>Index -2 označuje předposlední prvek.</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">loterie</span><span class=\"p\">[</span><span class=\"o\">-</span><span class=\"mi\">6</span><span class=\"p\">]</span>\n<span class=\"go\">42</span>\n</pre></div><p>Index -6 označuje šestý prvek od konce.</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">loterie</span><span class=\"p\">[</span><span class=\"o\">-</span><span class=\"mi\">100</span><span class=\"p\">]</span>\n<span class=\"gt\">Traceback (most recent call last):</span>\n File <span class=\"nb\">"<stdin>"</span>, line <span class=\"m\">1</span>, in <span class=\"n\"><module></span>\n<span class=\"gr\">IndexError</span>: <span class=\"n\">list index out of range</span>\n</pre></div><p>Stý prvek od konce v seznamu není. Nastane chyba.</p>\n </div>\n</div><h2>Odstraňování</h2>\n<p>Chceš-li ze seznamu něco odstranit, můžeš opět použít indexy.\nTentokrát s příkazem <code>del</code>.\nNásledujícím kódem odstraň počáteční číslo seznamu, tedy prvek číslo 0:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"k\">del</span> <span class=\"n\">loterie</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span>\n</pre></div><p>Pak si seznam opět vypiš. Kousek chybí!</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">loterie</span>\n<span class=\"go\">[42, 30, 19, 12, 3, 199]</span>\n</pre></div><p>Zkusíš odstranit poslední prvek?</p>\n<div class=\"solution\" id=\"solution-3\">\n <h3>Řešení</h3>\n <div class=\"solution-cover\">\n <a href=\"/2019/brno-jaro-snake/fast-track/list/index/solutions/3/\"><span class=\"link-text\">Ukázat řešení</span></a>\n </div>\n <div class=\"solution-body\" aria-hidden=\"true\">\n <div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"k\">del</span> <span class=\"n\">loterie</span><span class=\"p\">[</span><span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"p\">]</span>\n<span class=\"gp\">>>> </span><span class=\"n\">loterie</span>\n<span class=\"go\">[42, 30, 19, 12, 3]</span>\n</pre></div>\n </div>\n</div><p>Občase se stane, že nechceš smazat prvek podle pozice, ale podle toho,\nco v seznamu je.\nK tomu slouží hodnota <code>remove</code>, která najde a odstraní danou hodnotu:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">loterie</span>\n<span class=\"go\">[42, 3]</span>\n<span class=\"gp\">>>> </span><span class=\"n\">loterie</span><span class=\"o\">.</span><span class=\"n\">remove</span><span class=\"p\">(</span><span class=\"mi\">3</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">loterie</span>\n<span class=\"go\">[42]</span>\n</pre></div><h2>Řezání</h2>\n<p>Ze seznamu se dá kromě jednoho prvku vybrat i prvků několik – část seznamu,\ntakzvaný <em>podseznam</em>.</p>\n<p>Pojďme si opět udělat delší seznam čísel:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">cisla</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">"První"</span><span class=\"p\">,</span> <span class=\"s2\">"Druhý"</span><span class=\"p\">,</span> <span class=\"s2\">"Třetí"</span><span class=\"p\">,</span> <span class=\"s2\">"Čtvrtý"</span><span class=\"p\">]</span>\n</pre></div><p>Budeš-li chtít vybrat prvky od druhého dál, dej do hranatých závorek číslo\ntohohle prvku, a za něj dvojtečku.</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">cisla</span><span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">]</span>\n<span class=\"go\">'Druhý'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">cisla</span><span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">:]</span>\n<span class=\"go\">['Druhý', 'Třetí"', 'Čtvrtý']</span>\n</pre></div><p>Vybráním podseznamu se seznam nemění, tak můžeš vybírat dál:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">cisla</span>\n<span class=\"go\">['První', 'Druhý', 'Třetí', 'Čtvrtý']</span>\n<span class=\"gp\">>>> </span><span class=\"n\">cisla</span><span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">:]</span>\n<span class=\"go\">['Druhý', 'Třetí"', 'Čtvrtý']</span>\n<span class=\"gp\">>>> </span><span class=\"n\">cisla</span><span class=\"p\">[</span><span class=\"mi\">2</span><span class=\"p\">:]</span>\n<span class=\"go\">['Třetí', 'Čtvrtý']</span>\n<span class=\"gp\">>>> </span><span class=\"n\">cisla</span><span class=\"p\">[</span><span class=\"mi\">3</span><span class=\"p\">:]</span>\n<span class=\"go\">['Čtvrtý']</span>\n<span class=\"gp\">>>> </span><span class=\"n\">cisla</span><span class=\"p\">[</span><span class=\"mi\">4</span><span class=\"p\">:]</span>\n<span class=\"go\">[]</span>\n</pre></div><p>Budeš-li chtít vybrat prvky od začátku <em>do</em> některého prvku, dej dvojtečku\n<em>před</em> číslo prvku, který už ve výsledku nechceš</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">cisla</span><span class=\"p\">[</span><span class=\"mi\">2</span><span class=\"p\">]</span>\n<span class=\"go\">'Třetí'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">cisla</span><span class=\"p\">[:</span><span class=\"mi\">2</span><span class=\"p\">]</span>\n<span class=\"go\">['První', 'Druhý']</span>\n</pre></div><p>Úkol: máš-li nějaký seznam, jak z něj vybereš všechny prvky kromě posledního?</p>\n<div class=\"solution\" id=\"solution-4\">\n <h3>Řešení</h3>\n <div class=\"solution-cover\">\n <a href=\"/2019/brno-jaro-snake/fast-track/list/index/solutions/4/\"><span class=\"link-text\">Ukázat řešení</span></a>\n </div>\n <div class=\"solution-body\" aria-hidden=\"true\">\n <p>Poslední číslo má index -1, vyberu tedy prvky do -1:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">cisla</span><span class=\"p\">[:</span><span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"p\">]</span>\n<span class=\"go\">['První', 'Druhý', 'Třetí']</span>\n</pre></div>\n </div>\n</div><p>Začátek a konec se dá kombinovat – číslo můžeš dát před i za dvojtečku:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">cisla</span>\n<span class=\"go\">['První', 'Druhý', 'Třetí', 'Čtvrtý']</span>\n<span class=\"gp\">>>> </span><span class=\"n\">cisla</span><span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">:</span><span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"p\">]</span>\n<span class=\"go\">['Druhý', 'Třetí']</span>\n</pre></div><p>Řezání funguje i pro příkaz <code>del</code>.\nZkus vymazat prostřední dvě čísla:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">cisla</span>\n<span class=\"go\">['První', 'Druhý', 'Třetí', 'Čtvrtý']</span>\n<span class=\"gp\">>>> </span><span class=\"k\">del</span> <span class=\"n\">cisla</span><span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">:</span><span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"p\">]</span>\n<span class=\"gp\">>>> </span><span class=\"n\">cisla</span>\n<span class=\"go\">['První', 'Čtvrtý']</span>\n</pre></div><h2>Řezání řetězců</h2>\n<p>Hranaté závorky fungují i u řetězců, kde vybírají písmenka:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">>>> </span><span class=\"n\">jidlo</span> <span class=\"o\">=</span> <span class=\"s1\">'čokoláda'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">jidlo</span><span class=\"p\">[</span><span class=\"mi\">3</span><span class=\"p\">]</span>\n<span class=\"go\">'o'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">jidlo</span><span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">:</span><span class=\"mi\">4</span><span class=\"p\">]</span>\n<span class=\"go\">'oko'</span>\n</pre></div><p>Představ si, že máš v proměnné <code>jmeno</code> ženské jméno jako <code>'Ola'</code>,\n<code>'Krystýna'</code> nebo <code>'Růžena'</code>.\nJak z něj vytvoříš druhý pád (např. bez <code>'Růženy'</code>)?</p>\n<div class=\"solution\" id=\"solution-5\">\n <h3>Řešení</h3>\n <div class=\"solution-cover\">\n <a href=\"/2019/brno-jaro-snake/fast-track/list/index/solutions/5/\"><span class=\"link-text\">Ukázat řešení</span></a>\n </div>\n <div class=\"solution-body\" aria-hidden=\"true\">\n <p>Vezmi jméno až po poslední písmeno a přidáš <code>'y'</code>. Například:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"o\">>>></span> <span class=\"n\">jmeno</span> <span class=\"o\">=</span> <span class=\"s1\">'Růžena'</span>\n<span class=\"o\">>>></span> <span class=\"n\">jmeno</span><span class=\"p\">[:</span><span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"p\">]</span> <span class=\"o\">+</span> <span class=\"s1\">'y'</span>\n<span class=\"s1\">'Růženy'</span>\n</pre></div>\n </div>\n</div><h2>Shrnutí</h2>\n<p>Uf! O seznamech toho bylo k naučení celkem hodně. Shrňme si, co už umíš:</p>\n<ul>\n<li><strong>Seznam</strong> je seřazená sekvence hodnot.</li>\n<li>Pomocí <strong>metod</strong> se seznam dá řadit (<code>sort</code>) a obrátit (<code>reverse</code>),\nnebo se do něj dá přidat (<code>append</code>) či odebrat (<code>remove</code>) prvek.</li>\n<li>Prvky se dají <strong>vybrat</strong> nebo <strong>odstranit</strong> (<code>del</code>) podle indexu.</li>\n<li>Číslování začíná <strong>od nuly</strong>, záporná čísla berou prvky od konce.</li>\n<li><strong>Podseznam</strong> je určitá část seznamu.</li>\n<li>U <strong>řetězců</strong> funguje vybírání prvků a podřetězců podobně</li>\n</ul>\n<p>Jsi připravena na další část?</p>\n\n\n " } } }