Funktionen slice () returnerar ett segmentobjekt som kan användas för att skära strängar, listor, tuple etc.
Skivobjektet används för att skära en given sekvens (sträng, byte, tupel, lista eller intervall) eller något objekt som stöder sekvensprotokoll (implementerar __getitem__()
och __len__()
metod).
Syntaksen för slice()
är:
skiva (start, stopp, steg)
slice () Parametrar
slice()
kan ta tre parametrar:
- start (valfritt) - Startar heltal där objektets skärning börjar. Standard
None
om det inte tillhandahålls. - stopp - Heltal tills skivningen sker. Skärningen stoppar vid indexstopp -1 (sista elementet) .
- steg (valfritt) - Heltalsvärde som bestämmer inkrementet mellan varje index för skivning. Standardvärdena
None
om de inte tillhandahålls.
Exempel 1: Skapa ett skivobjekt för skivning
# contains indices (0, 1, 2) result1 = slice(3) print(result1) # contains indices (1, 3) result2 = slice(1, 5, 2) print(slice(1, 5, 2))
Produktion
skiva (Ingen, 3, Ingen) skiva (1, 5, 2)
Här, result1
och result2
är skiva objekt.
Nu vet vi om segmentobjekt, låt oss se hur vi kan få substring, sub-list, sub-tuple, etc. från segmentobjekt.
Exempel 2: Hämta substring med skivobjekt
# 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
Produktion
Pyt yhn
Exempel 3: Hämta substring med negativt index
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
Produktion
nej
Exempel 4: Hämta sublista och subtuple
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')
Produktion
('P', 'y', 't') ('y', 'h')
Exempel 5: Hämta sublista och sub-tuple med negativt index
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')
Produktion
('n', 'o', 'h') ('n', 'h')
Exempel 6: Använda indexeringssyntax för skivning
Skivobjektet kan ersättas med indexeringssyntaxen i Python.
Du kan växelvis använda följande syntax för skivning:
obj (start: stop: step)
Till exempel,
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
Produktion
Pyt yh