Funkce slice () vrací objekt slice, který lze použít k rozdělení řetězců, seznamů, n-tice atd.
Objekt řezu se používá k řezání dané sekvence (řetězec, bajty, n-tice, seznam nebo rozsah) nebo libovolného objektu, který podporuje protokol sekvence (nástroje __getitem__()
a __len__()
metoda).
Syntaxe slice()
je:
plátek (start, stop, krok)
parametry slice ()
slice()
může mít tři parametry:
- start (volitelně) - Počáteční celé číslo, kde začíná řezání objektu. Výchozí hodnota,
None
pokud není uvedena. - stop - Celé číslo, do kterého probíhá krájení. Řezání se zastaví na dorazu indexu -1 (poslední prvek) .
- step (volitelně) - celočíselná hodnota, která určuje přírůstek mezi každým indexem pro krájení. Výchozí nastavení,
None
pokud není k dispozici.
Příklad 1: Vytvořte objekt řezu pro krájení
# contains indices (0, 1, 2) result1 = slice(3) print(result1) # contains indices (1, 3) result2 = slice(1, 5, 2) print(slice(1, 5, 2))
Výstup
plátek (žádný, 3, žádný) plátek (1, 5, 2)
Tady result1
a result2
jsou objekty řezu.
Nyní víme o řezných objektech, podívejme se, jak můžeme získat podřetězce, podřízený seznam, podřízenou n-tici atd. Z objektů řezu.
Příklad 2: Získejte podřetězec pomocí objektu řezu
# Program to get a substring from the given string py_string = 'Python' # stop = 3 # contains 0, 1 and 2 indices slice_object = slice(3) print(py_string(slice_object)) # Pyt # start = 1, stop = 6, step = 2 # contains 1, 3 and 5 indices slice_object = slice(1, 6, 2) print(py_string(slice_object)) # yhn
Výstup
Pyt yhn
Příklad 3: Získejte podřetězec pomocí záporného indexu
py_string = 'Python' # start = -1, stop = -4, step = -1 # contains indices -1, -2 and -3 slice_object = slice(-1, -4, -1) print(py_string(slice_object)) # noh
Výstup
noh
Příklad 4: Získejte sublist a podtupec
py_list = ('P', 'y', 't', 'h', 'o', 'n') py_tuple = ('P', 'y', 't', 'h', 'o', 'n') # contains indices 0, 1 and 2 slice_object = slice(3) print(py_list(slice_object)) # ('P', 'y', 't') # contains indices 1 and 3 slice_object = slice(1, 5, 2) print(py_tuple(slice_object)) # ('y', 'h')
Výstup
('P', 'y', 't') ('y', 'h')
Příklad 5: Získejte sublist a podtupec pomocí negativního indexu
py_list = ('P', 'y', 't', 'h', 'o', 'n') py_tuple = ('P', 'y', 't', 'h', 'o', 'n') # contains indices -1, -2 and -3 slice_object = slice(-1, -4, -1) print(py_list(slice_object)) # ('n', 'o', 'h') # contains indices -1 and -3 slice_object = slice(-1, -5, -2) print(py_tuple(slice_object)) # ('n', 'h')
Výstup
('n', 'o', 'h') ('n', 'h')
Příklad 6: Použití syntaxe indexování pro krájení
Objekt řezu lze v Pythonu nahradit syntaxí indexování.
Pro krájení můžete střídavě použít následující syntaxi:
obj (start: stop: krok)
Například,
py_string = 'Python' # contains indices 0, 1 and 2 print(py_string(0:3)) # Pyt # contains indices 1 and 3 print(py_string(1:5:2)) # yh
Výstup
Pyt yh