Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

1. diel - Úvod do kolekcií v Pythone

Vitajte v prvej lekcii kurzu, v ktorom sa budeme venovať kolekciám v Pythone. Tie sú v Pythone veľmi dôležité, keďže sa Python často používa na spracovanie dát a dátovú vedu. Predstavíme si rôzne typy kolekcií, rozdiely medzi nimi a kedy ktorú kolekciu použiť. Budeme sa venovať aj pokročilejším témam, ako sú iterátory alebo zoznamové komprehencie.

Minimálne požiadavky

Pre tento kurz je potrebné ovládať Základné konštrukcie jazyka Python a Objektovo orientované programovanie v Pythone.

Kolekcie v Pythone

V Pythone sa budeme stretávať s potrebou pracovať s väčším množstvom dát. Keď sa dostaneme do nadväzujúcich kurzov, budeme vyvíjať webovú aplikáciu, analyzovať dáta v knižnici pandas, spracovávať výstupy z API (webového rozhrania na sťahovanie/nah­rávanie dát) alebo napríklad testovať softvér. A na to budeme potrebovať po ruke štruktúry, ktoré vedia uchovávať viac hodnôt naraz. Týmto štruktúram hovoríme kolekcie. Práve vďaka nim je Python tak obľúbený napríklad v dátovej vede, kde pracujeme s obrovským množstvom informácií a potrebujeme s nimi efektívne manipulovať.

Čo je to kolekcia?

Kolekcia je všeobecné označenie pre dátový typ, ktorý umožňuje ukladať viac hodnôt. Napr. teda obyčajná premenná obsahujúca zoznam je kolekciou:

fruits = ["apple", "banana", "pear"]

Premenná fruits vyššie obsahuje tri textové hodnoty, ktoré môžeme prechádzať alebo upravovať. Kolekciu si môžeme predstaviť ako krabičku, do ktorej uložíme viac vecí naraz – napríklad odpovede používateľov, produkty v e-shope, položky z databázy alebo celú tabuľku dát.

Typy kolekcií v Pythone

Možno sa pýtate: "Prečo nestačí len zoznam?" Ak máme málo dát, väčšinou je jedno, ktorú kolekciu použijeme. V praxi však nie je výnimkou pracovať s databázami o stovkách tisíc používateľov, miliónoch poistencov alebo recenzií. Takéto úlohy vyžadujú efektívne prístupy. Pri väčšom množstve dát je totiž veľmi dôležité, ako rýchlo s nimi vieme pracovať. Používateľ nechce čakať 10 minút, kým mu vyhľadáme záhradné kosačky, ak máme na e-shope 3 milióny produktov :)

Predstavme si, že máme kolekciu miliónov používateľov, ktorých často vyhľadávame podľa rodného čísla:

  • Keď ich uložíme do zoznamu, musíme prejsť celý zoznam, aby sme našli používateľa podľa rodného čísla.
  • Keď ich uložíme do slovníka, čo je kolekcia, ktorá pristupuje k prvkom pomocou kľúča, nie číselného indexu, a kľúčom bude rodné číslo, získame hľadaného používateľa takmer okamžite.

Príklad vyššie vôbec neznamená, že by bol slovník lepší než zoznam. Len že niektoré úlohy vie spracovať rýchlejšie. Naopak zoznam je lepší pre zachovanie poradia prvkov, čo slovník nevie.

Každý typ kolekcie sa teda hodí na iný účel.

Kedy ktorú kolekciu použiť?

Python ponúka tieto základné typy kolekcií:

  1. Zoznam (list) – Uchováva hodnoty v danom poradí, jednotlivé prvky je možné meniť, pridávať aj mazať.
  2. N-tica (tuple) – Funguje ako zoznam, ale poradie hodnôt nemôžeme meniť, vhodné pre pevné dáta ako súradnice alebo konštantné nastavenia.
  3. Množina (set) – Neuchováva poradie, ale zaručuje, že každý prvok je v kolekcii len raz.
  4. Slovník (dict) – Umožňuje priraďovať hodnoty ku kľúčom, napríklad meno → telefónne číslo a rýchlo k nim tak pristupovať.
Typ Usporiadané Meniteľné Unikátne prvky Príklad použitia
Zoznam Áno Áno Nie Výsledky z API, záznamy v tabuľke
N-tica Áno Nie Nie Súradnice GPS, konfigurácia
Množina Nie Áno Áno Unikátne ID, tagy bez opakovania
Slovník Áno (kľúče) Áno Kľúče áno Slovník pre preklady, databáza

Modul collections

Python má ďalej špeciálny modul collections, ktorý ponúka rozšírené kolekcie ako:

  • deque – Rýchla fronta/zásobník
  • Counter – Spočíta výskyty hodnôt
  • defaultdict – Slovník s predvolenou hodnotou
  • OrderedDict – Slovník, ktorý uchováva poradie vkladaných prvkov

Týmito pokročilými kolekciami sa budeme zaoberať v neskorších lekciách kurzu.

Ďalšie knižnice

Akonáhle zvládneme základné kolekcie, môžeme prejsť na ich výkonné nadstavby – knižnice NumPy a pandas. Tie sa často používajú pri spracovaní väčších dátových súborov, napríklad v oblasti dátovej vedy, strojového učenia alebo štatistiky:

  • Knižnica NumPy ponúka štruktúru zvanú pole (array), ktorá je podobná zoznamom, ale pracuje omnoho rýchlejšie a umožňuje ďalšie operácie (napr. sčítanie všetkých prvkov naraz)
  • Knižnica pandas je postavená nad NumPy a pridáva ďalšie vrstvy – napríklad tabuľkové dáta ako v Exceli.

Na čom kolekcie stoja?

Každá kolekcia v Pythone je objekt. To znamená, že má svoje metódy – špeciálne funkcie, ktoré môžeme volať, aby sme s kolekciou pracovali. Z kurzu objektovo orientovaného programovania už tieto pojmy poznáme. Napríklad kód nižšie vytvorí zoznam s dvoma položkami a potom do neho metódou append() pridá tretiu položku:

fruits = ["apple", "orange"]
fruits.append("banana")

V nasledujúcich lekciách tohto kurzu si jednotlivé metódy pre každú kolekciu ukážeme podrobnejšie a naučíme sa ich správne používať.

Praktické využitie kolekcií v Pythone

Využitie kolekcií je teda veľmi široké. Môžu byť použité pre rôzne úlohy a aplikácie, ako napríklad:

  • práca s databázou: slovníky a zoznamy sa často používajú na ukladanie a prácu s dátami z databázy,
  • spracovanie textu: zoznamy a tuple sa často používajú pri práci s textom, napríklad na rozdelenie textu na slová alebo prechádzanie textu po riadkoch,
  • matematické operácie: množiny sa často používajú na matematické operácie, ako je práca s množinou unikátnych hodnôt alebo zjednotenie či rozdiel množín,
  • webové aplikácie: slovníky a zoznamy sa často používajú na prácu s dátami z webových aplikácií, ako sú JSON alebo XML súbory,
  • algoritmy: zoznamy a tuple sa často používajú na implementáciu rôznych algoritmov, ako sú prehľadávanie alebo zoradenie.

V každom prípade výber kolekcie závisí od konkrétnej úlohy a od toho, ako chceme dáta spravovať. Je dôležité si uvedomiť vlastnosti jednotlivých kolekcií a vybrať tú najvhodnejšiu pre danú úlohu.

V nasledujúcej lekcii, Tuples a množiny v Pythone, sa pozrieme na tuples a množiny.


 

Všetky články v sekcii
Kolekcie v Pythone
Preskočiť článok
(neodporúčame)
Tuples a množiny v Pythone
Článok pre vás napísal arnie
Avatar
Užívateľské hodnotenie:
98 hlasov
.
Aktivity