StudyFiWiki
WikiWebová aplikace
StudyFi

AI studijní materiály pro každého studenta. Shrnutí, kartičky, testy, podcasty a myšlenkové mapy.

Studijní materiály

  • Wiki
  • Webová aplikace
  • Registrace zdarma
  • O StudyFi

Právní informace

  • Obchodní podmínky
  • GDPR
  • Kontakt
Stáhnout na
App Store
Stáhnout na
Google Play
© 2026 StudyFi s.r.o.Vytvořeno s AI pro studenty
Wiki💻 Informatika a počítačové vědyFunkce a seznamy v PythonuPodcast

Podcast na Funkce a seznamy v Pythonu

Funkce a Seznamy v Pythonu: Kompletní Průvodce pro Studenty

ShrnutíTest znalostíKartičkyPodcastMyšlenková mapa

Podcast

Python: Vše o seznamech0:00 / 10:17
0:001:00 zbývá
Anna…takže je to vlastně takový nákupní seznam na steroidech!
MatějPřesně tak! Můžeš do něj přidávat, odebírat, přehazovat položky… Je neuvěřitelně flexibilní.
Kapitoly

Python: Vše o seznamech

Délka: 10 minut

Kapitoly

Co je to seznam?

Indexy a slicing

Operace se seznamy

Pozor na kopírování!

Přidávání a odebírání prvků

Řazení a další metody

Práce s více seznamy najednou

Shrnutí

Přepis

Anna: …takže je to vlastně takový nákupní seznam na steroidech!

Matěj: Přesně tak! Můžeš do něj přidávat, odebírat, přehazovat položky… Je neuvěřitelně flexibilní.

Anna: Okay, tohle si myslím, že musí slyšet každý. Posloucháte Studyfi Podcast a dnes se ponoříme do jedné z nejdůležitějších struktur v Pythonu.

Matěj: Přesně tak, Anno. Dnes jsou na řadě seznamy.

Anna: Dobře, Matěji, tak pojďme úplně od začátku. Co to ten seznam, anglicky 'list', vlastně je?

Matěj: Představ si ho jako uspořádanou krabičku, kam si můžeš dávat různé věci. Čísla, texty, cokoliv. A co je nejdůležitější — a to je klíčový rozdíl oproti textovým řetězcům — tu krabičku můžeš kdykoliv otevřít a věci v ní měnit.

Anna: Aha! Takže zatímco textový řetězec je jako vytesaný do kamene a nemůžu změnit jedno písmenko uprostřed…

Matěj: Přesně. U seznamu můžeš jakýkoliv prvek vzít a nahradit ho jiným. Téhle vlastnosti se říká 'mutabilita', tedy měnitelnost. To je superschopnost seznamů.

Anna: Super! A jak takový seznam vytvořím?

Matěj: Nejjednodušší je prostě napsat prvky do hranatých závorek. Třeba cisla = . Nebo můžeš vytvořit prázdný seznam a postupně ho plnit pomocí metody append().

Anna: Takže začnu s prázdným nákupním košíkem a pak do něj postupně přidávám, co potřebuju?

Matěj: Perfektní přirovnání! Přesně tak to funguje. Můžeš taky převádět jiné typy dat. Třeba z řetězce dna = list("ACGT") ti vznikne seznam .

Anna: Nebo když mám data oddělená čárkami, třeba z nějakého souboru?

Matěj: Ano, tam je skvělá metoda split(). Napíšeš data.split(",") a Python ti to automaticky rozdělí do seznamu podle těch čárek. Extrémně užitečné.

Anna: Dobře, mám seznam pacientů: pacienti = . Jak se dostanu k jednomu konkrétnímu?

Matěj: Úplně stejně jako u řetězců – pomocí indexování. Počítá se od nuly, takže pacienti ti vrátí 'Jan'.

Anna: A co když chci posledního? Nechce se mi počítat, kolik jich je.

Matěj: Na to je skvělá finta. Použiješ záporný index. pacienti je vždycky poslední prvek, pacienti předposlední a tak dále.

Anna: To je geniální! A co když chci získat jen část seznamu? Třeba Marii, Petra a Annu?

Matěj: Tomu se říká 'slicing'. Napsala bys pacienti. Vezme to prvky od indexu 1 až po index 4, ale pozor, ten čtvrtý už tam nebude.

Anna: Takže horní hranice se do toho nepočítá. Rozumím. A co nějaké další triky se slicingem?

Matěj: Určitě. pacienti ti dá vše od začátku do třetího prvku. pacienti zase vše od druhého indexu do konce. A můj oblíbený: pacienti ti obrátí celý seznam pozpátku.

Anna: Fajn, umíme k prvkům přistupovat. Co s nimi dál můžeme dělat? Třeba spojovat seznamy?

Matěj: Jednoduše. Stejně jako řetězce, můžeš je sečíst znaménkem plus. skupina_a + skupina_b ti vytvoří jeden velký seznam.

Anna: A co násobení? To zní trochu divně.

Matěj: Je to spíš opakování. Když napíšeš * 7, nedostaneš nulu, ale seznam, který obsahuje sedm nul. Je to skvělý způsob, jak rychle vytvořit seznam s opakujícími se hodnotami.

Anna: To se hodí. A jak zjistím, jestli je nějaký pacient v mém seznamu?

Matěj: Na to slouží operátor in. Prostě napíšeš if "Jan Novák" in pacienti:. Funguje to krásně čitelně, skoro jako anglická věta.

Matěj: Teď se dostáváme k jedné z nejčastějších chyb, na kterou narazí skoro každý začátečník.

Anna: O co jde? Zní to záhadně.

Matěj: Představ si, že máš seznam a = . A chceš si udělat jeho kopii, tak napíšeš b = a.

Anna: To zní logicky. Co je na tom špatně?

Matěj: Problém je, že se nevytvořila kopie. Proměnná b teď jen ukazuje na ten samý seznam v paměti jako a. Jsou to jen dvě jména pro jednu a tu samou věc.

Anna: Počkat... takže když změním b, třeba přidám čtyřku... tak se změní i a?

Matěj: Přesně! A to je často zdroj nečekaných chyb. Pokud chceš skutečnou, nezávislou kopii, musíš použít metodu copy(). Tedy b = a.copy().

Anna: Páni, to je zásadní informace. Takže b = a je jen další cedulka na stejnou krabici, ale b = a.copy() vytvoří úplně novou, identickou krabici.

Matěj: Perfektně řečeno. Tohle si určitě zapamatujte.

Anna: Pojďme teď k těm metodám, které seznam přímo mění. Jak do něj přidám nový prvek?

Matěj: Nejčastěji použiješ append(), která přidá jeden prvek na konec. Ale co když chceš přidat celý jiný seznam?

Anna: No... použiju append() a přidám ten druhý seznam?

Matěj: Můžeš, ale stane se něco nečekaného. append() přidá ten druhý seznam jako jeden jediný prvek. Budeš mít seznam v seznamu.

Anna: Aha, vnořený seznam! A co když chci jen přidat ty prvky, ne celý seznam?

Matěj: Na to je metoda extend(). Ta vezme všechny položky z druhého seznamu a přidá je jednotlivě na konec toho prvního. Tenhle rozdíl mezi append a extend je hodně důležitý.

Anna: A co odebírání? Jak se zbavím třeba pacientky jménem 'Marie'?

Matěj: Použiješ patients.remove("Marie"). Ale pozor, pokud by tam 'Marie' nebyla, program spadne s chybou. Je bezpečnější se nejdřív zeptat if "Marie" in patients.

Anna: A co když chci odebrat prvek na konkrétní pozici, třeba ten poslední?

Matěj: Na to je skvělá metoda pop(). Bez argumentu odebere a zároveň vrátí poslední prvek. Když jí dáš index, třeba pop(0), odebere a vrátí ten první.

Anna: Super. A co řazení? Jak seřadím seznam čísel od nejmenšího po největší?

Matěj: Na to má seznam metodu sort(). Prostě zavoláš cisla.sort() a ona ti ten seznam na místě seřadí. Pozor, nevrací žádnou hodnotu, jen změní původní seznam.

Anna: Takže kdybych napsala serazena_cisla = cisla.sort(), tak v té nové proměnné nic nebude?

Matěj: Přesně tak, bude tam None. To je další častá past. Pokud chceš vytvořit nový seřazený seznam a ten původní nechat na pokoji, použiješ funkci sorted(). Ta naopak vrací novou, seřazenou kopii.

Anna: Takže sort() mění na místě, sorted() vrací kopii. To je jasné. Jsou ještě nějaké další užitečné metody?

Matěj: Určitě. Třeba .index("Petr") ti najde, na jaké pozici se Petr nachází. A .count(36.5) ti spočítá, kolikrát se v seznamu vyskytuje teplota 36,5.

Anna: Často mám dva seznamy, které patří k sobě. Třeba jména a k nim odpovídající teploty. Jak je projdu oba najednou?

Matěj: Na to je v Pythonu elegantní funkce zip(). Spojí ti ty dva seznamy jako zip a v každém kroku cyklu ti dá jeden prvek z každého. Takže dostaneš jméno a k němu hned příslušnou teplotu.

Anna: To zní mnohem lépe než si pamatovat indexy. A co když chci procházet seznam a zároveň potřebuju vědět, na jakém indexu zrovna jsem?

Matěj: I na to má Python skvělou funkci: enumerate(). Místo složitého počítání ti v každém kroku dá index i hodnotu. Můžeš si dokonce říct, od jakého čísla má začít počítat, třeba od jedničky.

Anna: Takže zip pro paralelní průchod a enumerate pro průchod s indexem. To jsou skvělé vychytávky!

Matěj: Přesně tak. Dělají kód mnohem čistší a čitelnější.

Anna: Matěji, bylo to nabité informacemi. Kdyby si naši posluchači měli odnést jen tři nejdůležitější věci o seznamech, které by to byly?

Matěj: Dobrá otázka. Zaprvé, seznamy jsou měnitelné (mutable), což je jejich hlavní síla oproti řetězcům. Můžete je měnit na místě.

Anna: Rozumím. Za druhé?

Matěj: Dávejte si obrovský pozor na kopírování! b = a nedělá kopii. Pro skutečnou kopii použijte a.copy().

Anna: A poslední, třetí bod?

Matěj: Pamatujte na rozdíl mezi metodami, které mění seznam na místě, a funkcemi, které vrací novou hodnotu. Hlavně sort() versus sorted() a append() versus extend().

Anna: Skvělé shrnutí. Děkujeme, že jste s námi dnes byli. Tohle byl Studyfi Podcast.

Matěj: Mějte se fajn a zase příště!

Další materiály

ShrnutíTest znalostíKartičkyPodcastMyšlenková mapa
← Zpět na téma