[pyar] Duda sobre SLICES en cadenas&listas

Facundo Batista facundobatista en gmail.com
Mie Oct 16 09:41:37 -03 2019


El mié., 16 de oct. de 2019 a la(s) 02:34, Edgardo
(edgardolor en gmail.com) escribió:

> Dado:
> a = 'estoesunacadena'
> b = ['esto', 'es', 'una', 'lista']
>
> Porque al imprimir
>
> b[4] obtengo un error de indice fuera de rango
> Pero al imprimir
> b[0:1000000]
>
> Obtengo la lista con todos sus elementos y no también error?
>
> Si hago la prueba con a obtengo lo mismo:
>
> a[15] error de indice fuera de rango
>
> Pero a[0:1000] o a[x:1000]
>
> No obtengo ningún error y me imprime la cadena completa.

No importa si son cadenas o listas, el slicing aplica a "secuencias" y
en ambos casos se van a comportar igual. Las cadenas son secuencias de
caracteres, las listas son secuencias de objetos.

La definición exacta del comportamiento está en:

    https://docs.python.org/3/library/stdtypes.html#common-sequence-operations

Pero más allá de eso, no sé la razón de diseño atrás de que si te
"pasás del límite" en un slice no devuelva error, pero es super
conveniente en el uso diario. Claro, pasarse del límite al buscar *un*
item no puede ser otra cosa que error, ¿sino qué te daría?

Saludos,

-- 
.    Facundo

Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org.ar/
Twitter: @facundobatista


Más información sobre la lista de distribución pyar