La función slice () devuelve un objeto de división que se puede usar para dividir cadenas, listas, tuplas, etc.
El objeto slice se utiliza para cortar una secuencia determinada (cadena, bytes, tupla, lista o rango) o cualquier objeto que admita el protocolo de secuencia (implementos __getitem__()
y __len__()
método).
La sintaxis de slice()
es:
rebanada (inicio, parada, paso)
Parámetros de slice ()
slice()
puede tomar tres parámetros:
- start (opcional) : número entero inicial donde comienza el corte del objeto. Por defecto
None
si no se proporciona. - stop : número entero hasta el que se realiza el corte. El corte se detiene en el índice de parada -1 (último elemento) .
- paso (opcional) : valor entero que determina el incremento entre cada índice para el corte. Predeterminado
None
si no se proporciona.
Ejemplo 1: crear un objeto de corte para cortar
# contains indices (0, 1, 2) result1 = slice(3) print(result1) # contains indices (1, 3) result2 = slice(1, 5, 2) print(slice(1, 5, 2))
Salida
sector (Ninguno, 3, Ninguno) sector (1, 5, 2)
Aquí, result1
y result2
son objetos de corte.
Ahora que sabemos sobre los objetos de corte, veamos cómo podemos obtener subcadenas, sublistas, subtuplas, etc.
Ejemplo 2: obtener una subcadena con un objeto de división
# 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
Salida
Pyt yhn
Ejemplo 3: obtener una subcadena con un í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
Salida
no h
Ejemplo 4: obtener sublista y 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')
Salida
('P', 'y', 't') ('y', 'h')
Ejemplo 5: obtener sublista y subtupla con í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')
Salida
('n', 'o', 'h') ('n', 'h')
Ejemplo 6: uso de la sintaxis de indexación para la división
El objeto slice se puede sustituir por la sintaxis de indexación en Python.
Puede utilizar alternativamente la siguiente sintaxis para segmentar:
obj (inicio: parada: paso)
Por ejemplo,
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
Salida
Pyt yh