[pyar] Duda sobre SLICES en cadenas&listas

Edgardo edgardolor en gmail.com
Mie Oct 16 16:42:35 -03 2019


Buenas tardes

@Nahuel muchas gracias por tu respuesta, entiendo como funciona una
cadena/lista y los slices, solo me surgió la duda al intentar realizar un
ejercicio (buscar cuantas veces aparece la palabra "bob" en una cadena) y
conocer que la solución era s[x:x+3] donde x+3 se me había ocurrido pero
supuse que iba a devolver indice fuera de rango.

@Marcos, muchas gracias. Eso solo aclara la duda con respecto a listas, que
son mutables. Pero las cadenas no y sin embargo al hacer a[0:1000] no
devuelve error sino la cadena completa. Sí error, si quiero acceder a un
indice en particular y me paso de la cantidad que tiene.

@Facundo la respuesta de @Marcos te aclara alguna duda en cuanto a listas?

Gracias a todos, queda por descubrir porque no devuelve error con cadenas.
Si a alguno se le ocurre comente, mientras sigo buscando en la red.

Saludos.

El mié., 16 oct. 2019 a las 9:42, Facundo Batista (<facundobatista en gmail.com>)
escribió:

> 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
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20191016/267857ce/attachment.html>


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