A função slice () retorna um objeto slice que pode ser usado para fatiar strings, listas, tuplas, etc.
O objeto de fatia é usado para dividir uma determinada seqüência (string, bytes, tupla, lista ou intervalo) ou qualquer objeto que suporte protocolo de seqüência (implementos __getitem__()
e __len__()
método).
A sintaxe de slice()
é:
fatia (iniciar, parar, passo)
Parâmetros de slice ()
slice()
pode ter três parâmetros:
- start (opcional) - Inteiro inicial onde começa o fracionamento do objeto. Padrão para
None
se não fornecido. - stop - Número inteiro até o qual o corte ocorre. O corte para na parada do índice -1 (último elemento) .
- step (opcional) - valor inteiro que determina o incremento entre cada índice para fracionamento. O padrão é
None
se não fornecido.
Exemplo 1: criar um objeto de fatia para fatiar
# contains indices (0, 1, 2) result1 = slice(3) print(result1) # contains indices (1, 3) result2 = slice(1, 5, 2) print(slice(1, 5, 2))
Resultado
fatia (nenhuma, 3, nenhuma) fatia (1, 5, 2)
Aqui, result1
e result2
estão os objetos de fatia.
Agora que sabemos sobre objetos de fatia, vamos ver como podemos obter substring, sublista, subtupla, etc. de objetos de fatia.
Exemplo 2: obter substring usando objeto de fatia
# 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
Resultado
Pyt yhn
Exemplo 3: obter substring usando índice negativo
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
Resultado
noh
Exemplo 4: Obter sublista e subtupla
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')
Resultado
('P', 'y', 't') ('y', 'h')
Exemplo 5: obtenha sublista e subtupla usando índice negativo
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')
Resultado
('n', 'o', 'h') ('n', 'h')
Exemplo 6: Usando a sintaxe de indexação para fatiar
O objeto de fatia pode ser substituído pela sintaxe de indexação em Python.
Você pode usar alternadamente a seguinte sintaxe para fatiar:
obj (start: stop: step)
Por exemplo,
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
Resultado
Pyt yh