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.
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.
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.
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[:]
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]
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.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.
Ver comentarios