NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!

Lekce 1 - Úvod do kolekcí v Pythonu

Vítejte v první lekci kurzu, ve kterém se budeme věnovat kolekcím v Pythonu. Ty jsou v Pythonu velmi důležité, jelikož se Python často používá pro zpracování dat a datovou vědu. Představíme si různé typy kolekcí, rozdíly mezi nimi a kdy jakou kolekci použít. Budeme se věnovat i pokročilejším tématům, jako jsou iterátory nebo seznamové komprehence.

Minimální požadavky

Pro tento kurz je nutné ovládat Základní konstrukce jazyka Python a Objektově orientované programování v Pythonu.

Kolekce v Pythonu

V Pythonu se často setkáváme s potřebou pracovat s větším množstvím dat. Ať už vyvíjíme webovou aplikaci, analyzujeme data v knihovně pandas, zpracováváme výstupy z API nebo testujeme software, potřebujeme mít po ruce struktury, které umí uchovávat více hodnot najednou. Těmto strukturám říkáme kolekce. Právě díky nim je Python tak oblíbený například v datové vědě, kde pracujeme s obrovským množstvím informací a potřebujeme s nimi efektivně manipulovat.

Co je to kolekce?

Kolekce je obecné označení pro datový typ, který umožňuje ukládat více hodnot. Např. tedy obyčejná proměnná obsahující seznamem je kolekcí:

ovoce = ["jablko", "banán", "hruška"]

Proměnná ovoce výše obsahuje tři textové hodnoty, které můžeme procházet nebo upravovat. Kolekci si můžeme představit jako krabičku, do které uložíme víc věcí najednou – třeba odpovědi uživatelů, produkty v e-shopu, položky z databáze nebo celou tabulku dat.

Typy kolekcí v Pythonu

Možná se ptáte: "Proč nestačí jen seznam?" Pokud máme málo dat, většinou je jedno, jakou kolekci použijeme. V praxi ale není výjimkou pracovat s databázemi o stovkách tisících uživatelů, milionů pojištěnců nebo recenzí. Takové úlohy vyžadují efektivní přístupy. U většího množství dat je totiž velmi důležité, jak rychle s nimi umíme pracovat. Uživatel nechce čekat 10 minut, než mu vyhledáme zahradní sekačky, pokud máme na e-shopu 3 miliony produktů :)

Představme si, že máme kolekci milionů uživatelů, které často vyhledáváme podle rodného čísla:

  • Když je uložíme do seznamu, musíme projít celý seznam, abychom našli uživatele podle rodného čísla.
  • Když je uložíme do slovníku, což je kolekce, která přistupuje k prvkům pomocí klíče, nikoli číselného indexu, a klíčem bude rodné číslo, získáme hledaného uživatele téměř okamžitě.

Příklad výše vůbec neznamená, že by byl slovník lepší, než seznam. Pouze, že některé úlohy umí zpracovat rychleji. Naopak seznam je lepší pro zachování pořadí prvků, což slovník neumí.

Každý typ kolekce se tedy proto hodí pro jiný účel.

Kdy jakou kolekci použít?

Python nabízí tyto základní typy kolekcí:

  1. Seznam (list) – Uchovává hodnoty v daném pořadí, jednotlivé prvky lze měnit, přidávat i mazat.
  2. N-tice (tuple) – Funguje jako seznam, ale pořadí hodnot nemůžeme měnit, vhodné pro pevná data jako souřadnice nebo konstantní nastavení.
  3. Množina (set) – Neuchovává pořadí, ale zaručuje, že každý prvek je v kolekci jen jednou.
  4. Slovník (dict) – Umožňuje přiřazovat hodnoty ke klíčům, například jméno → telefonní číslo a rychle k nim tak přistupovat.
Typ Uspořádaný Měnitelný Unikátní prvky Příklad použití
Seznam Ano Ano Ne Výsledky z API, záznamy v tabulce
N-tice Ano Ne Ne Souřadnice GPS, konfigurace
Množina Ne Ano Ano Unikátní ID, tagy bez opakování
Slovník Ano (klíče) Ano Klíče ano Slovník pro překlady, databáze

Modul collections

Python má dále speciální modul collections, který nabízí rozšířené kolekce jako:

  • deque – Rychlá fronta/zásobník
  • Counter – Spočítá výskyty hodnot
  • defaultdict – Slovník s výchozí hodnotou
  • OrderedDict – Slovník, který uchovává pořadí vkládaných prvků

Těmito pokročilými kolekcemi se budeme zabývat v pozdějších lekcích kurzu.

Další knihovny

Jakmile zvládneme základní kolekce, můžeme přejít na jejich výkonné nástavby – knihovny NumPy a pandas. Ty se často používají při zpracování větších datových souborů, například v oblasti datové vědy, strojového učení nebo statistiky:

  • Knihovna NumPy nabízí strukturu zvanou pole (array), která je podobná seznamům, ale pracuje mnohem rychleji a umožňuje další operace (např. sčítání všech prvků najednou)
  • Knihovna pandas je postavena nad NumPy a přidává další vrstvy – například tabulková data jako v Excelu.

Na čem kolekce staví?

Každá kolekce v Pythonu je objekt. To znamená, že má své metody – speciální funkce, které můžeme volat, abychom s kolekcí pracovali. Z kurzu objektově orientovaného programování již tyto pojmy známe. Například kód níže vytvoří seznam se dvěma položkami a pak do něj metodou append() přidá třetí položku:

ovoce = ["jablko", "pomeranč"]
ovoce.append("banán")

V dalších lekcích tohoto kurzu si jednotlivé metody pro každou kolekci ukážeme podrobněji a naučíme se je správně používat.

Praktické využití kolekcí v Pythonu

Využití kolekcí je tedy velmi široké. Mohou být použity pro různé úkoly a aplikace, jako například:

  • práce s databází: slovníky a seznamy jsou často používány pro ukládání a práci s daty z databáze,
  • zpracování textu: seznamy a tuple jsou často používány pro práci s textem, například pro rozdělení textu na slova nebo procházení textu po řádcích,
  • matematické operace: množiny jsou často používány pro matematické operace, jako je například práce s množinou unikátních hodnot nebo sjednocení nebo rozdíl množin,
  • webové aplikace: slovníky a seznamy jsou často používány pro práci s daty z webových aplikací, jako jsou například JSON nebo XML soubory,
  • algoritmy: Seznamy a tuple jsou často používány pro implementaci různých algoritmů, jako jsou například prohledávání nebo řazení.

V každém případě volba kolekce závisí na konkrétním úkolu a na tom, jakým způsobem chceme data manipulovat. Je důležité si uvědomit vlastnosti jednotlivých kolekcí a vybrat tu nejvhodnější pro daný úkol.

V příští lekci, Tuples, množiny a slovníky v Pythonu, se podíváme na tuples, množiny a slovníky.


 

Všechny články v sekci
Kolekce v Pythonu
Přeskočit článek
(nedoporučujeme)
Tuples, množiny a slovníky v Pythonu
Článek pro vás napsal David Hartinger
Avatar
Uživatelské hodnocení:
453 hlasů
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David se informační technologie naučil na Unicorn University - prestižní soukromé vysoké škole IT a ekonomie.
Aktivity