[: -1] en Python

Vaibhav Vaibhav 10 octubre 2023
  1. Cortar en Python
  2. Significado de [ : -1] en Python
[: -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 es 0.
  • 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 es 1.

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]
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Artículo relacionado - Python List