Funkcia slice () vracia objekt slice, ktorý je možné použiť na rozdelenie reťazcov, zoznamov, n-tice atď.
Objekt rezu sa používa na rozdelenie danej sekvencie (reťazec, bajty, n-tica, zoznam alebo rozsah) alebo ľubovoľného objektu, ktorý podporuje protokol sekvencií (nástroje __getitem__()
a __len__()
metóda).
Syntax slice()
je:
plátok (štart, stop, krok)
parametre slice ()
slice()
môže mať tri parametre:
- start (voliteľné) - Počiatočné celé číslo, kde sa začína rezanie objektu. Predvolené,
None
ak nie je poskytnuté. - stop - celé číslo, do ktorého dôjde k krájaniu. Krájanie sa zastaví na doraze indexu -1 (posledný prvok) .
- krok (voliteľné) - celočíselná hodnota, ktorá určuje prírastok medzi každým indexom pre rozdelenie. Predvolené hodnoty,
None
ak nie sú poskytnuté.
Príklad 1: Vytvorte objekt rezu na krájanie
# 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ýkon
plátok (žiadny, 3, žiadny) plátok (1, 5, 2)
Tu, result1
a result2
sú časti objekty.
Teraz vieme o rezaných objektoch. Pozrime sa, ako môžeme z podrezaných objektov získať podreťazec, podzoznam, podnázov.
Príklad 2: Získajte podreťazec pomocou objektu rezu
# 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ýkon
Pyt yhn
Príklad 3: Získajte podreťazec pomocou 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ýkon
žiadne h
Príklad 4: Získajte podzoznam a podnázov
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ýkon
('P', 'y', 't') ('y', 'h')
Príklad 5: Získajte podlist a podnázov pomocou negatívneho 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ýkon
('n', 'o', 'h') ('n', 'h')
Príklad 6: Použitie indexovacej syntaxe na rozdelenie
Objekt rezu je možné nahradiť indexovacou syntaxou v Pythone.
Na krájanie môžete alternatívne použiť nasledujúcu syntax:
obj (štart: stop: krok)
Naprí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ýkon
Pyt yh