[: -1] en Python
El corte es una operación en lenguajes de programación que podemos realizar sobre secuencias de objetos o matrices de objetos o cadenas. Al dividir, dividimos una estructura de datos usando funciones y notaciones más simples para obtener una subcadena o una subsecuencia, o un subarreglo de la estructura de datos original.
Cortar en Python
Python es un lenguaje de programación, lo que significa que también admite la división. En Python, hay principalmente dos formas en las que podemos realizar el corte. El primero usa la función slice()
y el segundo usa la sintaxis de indexación.
Cortar en Python usando el constructor slice()
El constructor de rebanadas acepta tres argumentos: start
, stop
y step
. Este constructor crea un objeto de corte para dividir una cadena o cualquier secuencia de objetos.
start
: este es el índice de inicio desde donde debe comenzar el corte. Su valor predeterminado es0
.stop
: este es el índice final donde debe terminar el corte. Es un argumento obligatorio.step
: esta es la cantidad de incrementos que se deben tomar mientras se itera sobre la secuencia para el proceso de corte. Su valor predeterminado es1
.
Para entender un poco mejor esta utilidad, veamos algunos ejemplos. Tenga en cuenta que en Python, -1
representa el último índice. Y, al indexar o iterar, el índice stop
no se considera en el resultado final. Las operaciones se realizan sobre todo lo anterior.
s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
slices = [
slice(5),
slice(0, -1),
slice(1, -1, 2),
slice(1, 4, 1),
slice(5, -1),
slice(3, -1, 3),
slice(0, 0),
slice(-1, 0, -1),
slice(-5, 5, -3),
]
for i in range(len(slices)):
print(s[slices[i]])
for i in range(len(slices)):
print(a[slices[i]])
Producción :
ABCDE
ABCDEFGHIJKLMNOPQRSTUVWXY
BDFHJLNPRTVX
BCD
FGHIJKLMNOPQRSTUVWXY
DGJMPSVY
ZYXWVUTSRQPONMLKJIHGFEDCB
VSPMJG
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 4, 6, 8]
[2, 3, 4]
[6, 7, 8, 9]
[4, 7]
[]
[10, 9, 8, 7, 6, 5, 4, 3, 2]
[]
Tenga en cuenta que cuando se pasa un solo valor al constructor slice()
, el valor se asigna al índice stop
. Es por eso que para slice(5)
, obtuvimos la salida como ABCDE
.
Cortar en Python usando la sintaxis de indexación
En Python, en lugar de usar el constructor slice()
para crear objetos de corte, podemos usar la siguiente sintaxis para realizar el corte.
sequence[start:stop:step]
Los argumentos aceptados son los mismos que los del método anterior; lo que realmente cambia es la forma de escribirlos. Los valores predeterminados para start
, stop
y step
son 0
, -1
y 1
, respectivamente. Tenga en cuenta que podemos omitir el argumento para usar el valor predeterminado, pero es necesario escribir los colones. Veamos algunos ejemplos de sintaxis de indexación para entenderlo un poco mejor.
s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(s[5])
print(s[:-1])
print(s[0:-1])
print(s[1:-1:2])
print(s[1:4:1])
print(s[5:-1])
print(s[3:-1:3])
print(s[:0])
print(s[-1:0:-1])
print(s[-5:5:-3])
print(a[5])
print(a[:-1])
print(a[0:-1])
print(a[1:-1:2])
print(a[1:4:1])
print(a[5:-1])
print(a[3:-1:3])
print(a[:0])
print(a[-1:0:-1])
print(a[-5:5:-3])
Producción :
F
ABCDEFGHIJKLMNOPQRSTUVWXY
ABCDEFGHIJKLMNOPQRSTUVWXY
BDFHJLNPRTVX
BCD
FGHIJKLMNOPQRSTUVWXY
DGJMPSVY
ZYXWVUTSRQPONMLKJIHGFEDCB
VSPMJG
6
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 4, 6, 8]
[2, 3, 4]
[6, 7, 8, 9]
[4, 7]
[]
[10, 9, 8, 7, 6, 5, 4, 3, 2]
[]
Significado de [ : -1]
en Python
Como podemos ver, esta sintaxis pertenece a la sintaxis de indexación. [ : -1]
imprimirá todos los elementos de secuencia excepto el último. Veamos algunos ejemplos para entender este concepto.
s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(s[:-1])
print(a[:-1])
Producción :
ABCDEFGHIJKLMNOPQRSTUVWXY
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Artículo relacionado - Python List
- Convertir un diccionario en una lista en Python
- Eliminar todas las apariciones de un elemento de una lista en Python
- Eliminar duplicados de una lista en Python
- Cómo obtener el promedio de una lista en Python
- ¿Cuál es la diferencia entre los métodos de lista que añaden y amplían
- Cómo convertir una lista en cadena en Python