python

Operaciones para cortar listas en Python (slice notation)

Python es un lenguaje que tiene algunas propiedades un poco especiales a la hora de tratar con listas o arreglos. Se puede cortar un arreglo desde su inicio hasta determinado lugar, o desde determinado lugar hasta el final.

Cortar arreglos en Python, slice en listasCortar arreglos en Python, slice en listas
Cortar arreglos en Python, slice en listas

También se puede cortar desde el inicio hasta -2 elementos, y otras cosas que al principio son confusas pero después son útiles.

Nota: al menos para efectos de este post, lista y arreglo se refieren a lo mismo.

Operaciones slice en Python

Estas operaciones son las cuales involucran una lista y el símbolo de dos puntos :. De esta manera se pueden cortar listas, así:

lista_cortada = lista[1:3]

Vamos a ver todas las operaciones posibles con esta notación.

Operaciones normales para cortar lista en Python

Para cortar desde inicio hasta fin, se usa esto:

lista[inicio:fin]

Por ejemplo, desde el elemento 0 hasta el 2:

lista[0:2]

Aunque si es cero, no es necesario que se especifique:

lista[:2]

También se puede cortar desde determinado lugar hasta el final:

lista[2:]

Incluso se puede no cortar:

lista[:]

Utilizar números negativos

Aquí se complican un poco las cosas, pero no hay problema. Se pueden usar números negativos para cortar arreglos en Python. Por ejemplo, lo siguiente obtiene el último elemento:

lista[-1:]

Esto es porque comienza en -1, pero como no hay índices negativos, se regresa y entonces se encuentra con el último elemento. Y como ya se encuentra en el fin, no necesita ir más allá.

Igualmente si se quieren obtener los últimos dos elementos:

lista[-2:]

O desde el inicio, pero sin los últimos 2 elementos:

lista[:-2]

Con step o pasos

La notación de slice en Python soporta un tercer “argumento” y es el número de pasos que se avanza al cortar. Por defecto, es 1; pero puede ser especificado de otra manera. Dicho de otro modo, cuando hacemos esto:

lista[0:5] (obtiene desde el 0 hasta el 5 -1)

Es lo mismo que hacer esto:

lista[0:5:1] (obtiene desde el 0 hasta el 5 -1 en pasos de 1)

Pero si cambiamos el tercer argumento, para que sea en pasos de 2:

lista[0:5:2]

Entonces obtiene los elementos del 0 hasta el 5, pero ignorando algunos. Comienza en el 0, y avanza 2 pasos, así que selecciona el que tiene el índice 2. Luego, desde el 2 avanza otros 2 pasos y se encuentra con el índice 4. Si ya no hay más al saltar, entonces se detiene.

La gran diferencia es que cuando ponemos que sea en pasos de 1 y cortamos desde 0 hasta 5, devuelve una lista con 5 elementos. Pero cuando especificamos que vaya en pasos de 2, la devuelve con 3.

Por cierto, se puede observar que para invertir una lista se tiene que avanzar en pasos de -1, seleccionado desde el inicio hasta el fin, así:

lista[::-1]

Esto es explicado en profundidad en otro post que trata sobre cómo invertir un arreglo o lista en Python.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Resetear GOOJPRT PT-210 MTP-II (Impresora térmica)

El día de hoy vamos a ver cómo restablecer la impresora térmica GOOJPRT PT-210 a…

2 semanas hace

Proxy Android para impresora térmica ESC POS

Hoy voy a enseñarte cómo imprimir en una impresora térmica conectada por USB a una…

2 semanas hace

Android – Servidor web con servicio en segundo plano

En este post voy a enseñarte a programar un servidor web en Android asegurándonos de…

2 semanas hace

Cancelar trabajo de impresión con C++

En este post te quiero compartir un código de C++ para listar y cancelar trabajos…

1 mes hace

Copiar bytes de Golang a JavaScript con WebAssembly

Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…

2 meses hace

Imprimir PDF con Ghostscript en Windows de manera programada

Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…

2 meses hace