30. Řezy v seznamech#

30.1. Teorie#

Řezy (slices) v Pythonu jsou mechanismem, který umožňuje vybírat podseznamy z původního seznamu na základě specifikovaného rozsahu nebo kroku. Použití řezů je velmi užitečné pro získání podmnožiny prvků seznamu nebo pro provádění operací na části seznamu. Snadno získáme například prvních pět nebo posledních deset prvků seznamu.

30.1.1. Syntaxe#

Syntaxe pro použití řezů je následující: [start:stop:krok]

  • start: Počáteční index (včetně) řezu. Pokud není uveden, bere se začátek seznamu (index 0).

  • stop: Koncový index (vyjma) řezu. Pokud není uveden, bere se konec seznamu (poslední prvek).

  • krok: Volitelný parametr pro specifikaci kroku mezi vybranými prvky seznamu. Pokud není uveden, bere se implicitně krok 1.

Tedy syntaxe je podobná parametrům příkazu range, pouze se parametry oddělují dvojtečkami.

30.1.2. Příklady použití řezů#

30.1.2.1. Získání podseznamu#

cisla = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
podseznam = cisla[2:6]  # Vybíráme prvky od indexu 2 (včetně) do indexu 6 (vyjma)
print(podseznam)  # Výstup: [3, 4, 5, 6]

30.1.2.2. Specifikace kroku#

cisla = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
krok = 2
podseznam = cisla[1:8:krok]  # Vybíráme prvky od indexu 1 (včetně) do indexu 8 (vyjma) s krokem 2
print(podseznam)  # Výstup: [2, 4, 6, 8]

30.1.2.3. Ponechání výchozího počátečního nebo koncového indexu#

cisla = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
podseznam1 = cisla[:5]  # Vybíráme prvky od začátku seznamu do indexu 5 (vyjma)
podseznam2 = cisla[5:]  # Vybíráme prvky od indexu 5 (včetně) do konce seznamu
print(podseznam1)  # Výstup: [1, 2, 3, 4, 5]
print(podseznam2)  # Výstup: [6, 7, 8, 9, 10]

30.1.2.4. Indexování od konce#

Řezy lze také kombinovat se zápornými indexy, což umožňuje vybírat prvky od konce seznamu:

cisla = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
podseznam = cisla[-5:-2]  # Vybíráme prvky od pátého od konce indexu (včetně) do druhého od konce indexu (vyjma)
print(podseznam)  # Výstup: [6, 7, 8]

Řezy jsou užitečné při práci s velkými seznamy, protože umožňují efektivní a elegantní manipulaci s jejich částmi.

30.1.2.5. Indexování textových řetězců#

Pro potřeby řezů se textové řetězce berou jako seznamy písmen.

text = "Můj pokusný řetězec pro experimenty v Pythonu."
print(text[:3]) # Výstup: Můj
print(text[-3:]) # Výstup: nu.
print(text[10:-1]) # Výstup: ý řetězec pro experimenty v Pythonu

30.2. Úkol#

  • V systému je přednastavena proměnná text.

  • Pomocí příkazu print vytiskněte prvních pět písmen.

  • Pomocí příkazu print vytiskněte posledních sedm písmen.

  • Pomoc příkazu print vytiskněte šesté a sedmé písmeno.