[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