Funkce a Seznamy v Pythonu: Kompletní Průvodce pro Studenty
Python seznamy (list) jsou základní a velmi užitečná datová struktura pro ukládání uspořádaných kolekcí hodnot. Tento materiál vás provede vytvářením seznamů, základní manipulací, běžnými metodami a praktickými příklady použití v reálných úlohách.
Seznam (list) je uspořádaná, indexovatelná a mutable kolekce, která může obsahovat různé datové typy včetně dalších seznamů.
numbers = [1, 2, 3, 4, 5]measurements = []measurements.append(36.5)patients[0], patients[-1] (poslední prvek).patients[1:4] (indexy 1,2,3), patients[:3], patients[2:].patients[::2] (každý druhý), patients[::-1] (pozpátku).Praktický příklad:
patients[0] → "Jan"patients[-1] → "Tomáš"patients[1:4] → ["Marie", "Petr", "Anna"]Pamatuj: u seznamů můžeš měnit prvky přes index; u řetězců to nejde (řetězce jsou immutable).
all_patients = group_a + group_bweek_data = [0] * 7in, not in pro testování přítomnosti: if "Jan Novák" in patients:[1,2,3] == [1,2,3] → True, [1,2,3] == [3,2,1] → Falsefor i, patient in enumerate(patients, start=1): print(f"{i}. {patient}")for name, temp in zip(names, temperatures): print(f"{name}: {temp}°C")append(x) – přidá jediný prvek na konec: patients.append("Petr").extend(iterable) – rozbalí iterovatelný objekt a přidá jeho prvky: patients.extend(["Petr","Anna"]).insert(index, x) – vloží prvek na konkrétní pozici: patients.insert(1, "Anna").Pozor: append(["Petr","Anna"]) přidá celý seznam jako jeden prvek (vnořený seznam).
remove(x) – odebere první výskyt hodnoty x. Pokud neexistuje, vyhodí ValueError.
if x in patients: patients.remove(x).pop([index]) – odebere a vrátí prvek na indexu, výchozí je poslední prvek.
last = patients.pop()first = patients.pop(0)index(x) – vrátí index prvního výskytu x.count(x) – spočítá výskyty x.sort() – seřadí seznam in-place (mění původní seznam). Nemá návratovou hodnotu (vrací None).sorted(list) – vrátí nový seřazený seznam, původní nezměněn.Tabulka: Porovnání sort() vs sorted()
| Vlastnost | list.sort() | sorted(list) |
|---|---|---|
| Mění původní seznam | Ano | Ne |
| Vrací nový seznam | Ne | Ano |
| Použití | Když nepotřebujete původní | Když chceš zachovat původní |
b = a vytvoří druhý název pro stejný objekt (sdílená reference).a.copy() nebo a[:].Příklad:
list("ACGTTAGC") → rozbalí znaky.split(): data = "Jan,25,Praha"; parts = data.split(",") → ["Jan","25","Praha"]Už máš účet? Přihlásit se
Klíčová slova: Python
Klíčové pojmy: Seznam je mutable, indexovatelný a uspořádaný, Vytvoření: [] nebo [a,b,c]; prázdný a postupné append(), Indexování začíná od 0; slicing: start:stop:step, append() přidá prvek; extend() rozbalí iterabilní objekt, insert(i,x) vloží prvek na index i, remove(x) odebere první výskyt; pop([i]) vrátí a odebere prvek, list.sort() mění seznam in-place; sorted(list) vrací nový seznam, b = a je reference; použij a.copy() nebo a[:] pro kopii, enumerate() vrací index a hodnotu; zip() pro paralelní průchod, split() převádí řetězec na seznam podle separátoru, Kontrola obsahu pomocí in a not in, sort() nevrací hodnotu (None) — nekombinovat s přiřazením