[pyar] Resumen de pyar, Vol 116, Envío 29

Emanuel Buzey ebuzey en yahoo.com.ar
Mie Oct 16 12:43:54 -03 2019


Buenas tardes!
El primer elemento de una lista es [0], es decir que tu lista va hasta el índice [3] por ese motivo te arroja ese error.

Enviado desde Yahoo Mail con Android 
 
  El mié., oct. 16, 2019 a las 12:02 p. m., pyar-request en python.org.ar<pyar-request en python.org.ar> escribió:   Envíe los mensajes para la lista pyar a
    pyar en python.org.ar

Para subscribirse o anular su subscripción a través de la WEB
    http://listas.python.org.ar/listinfo/pyar

O por correo electrónico, enviando un mensaje con el texto "help" en
el asunto (subject) o en el cuerpo a:
    pyar-request en python.org.ar

Puede contactar con el responsable de la lista escribiendo a:
    pyar-owner en python.org.ar

Si responde a algún contenido de este mensaje, por favor, edite la
linea del asunto (subject) para que el texto sea mas especifico que:
"Re: Contents of pyar digest...". Además, por favor, incluya en la
respuesta sólo aquellas partes del mensaje a las que está
respondiendo.


Asuntos del día:

  1. Duda sobre SLICES en cadenas&listas (Edgardo)
  2. Re: Duda sobre SLICES en cadenas&listas (Nahuel Defossé)
  3. Re: Duda sobre SLICES en cadenas&listas (Marcos Dione)
  4. Re: Duda sobre SLICES en cadenas&listas (Facundo Batista)


----------------------------------------------------------------------

Message: 1
Date: Wed, 16 Oct 2019 02:33:49 -0300
From: Edgardo <edgardolor en gmail.com>
To: Python Argentina <pyar en python.org.ar>
Subject: [pyar] Duda sobre SLICES en cadenas&listas
Message-ID:
    <CA+qZMOMG0T5xJW84H+JJ10oWOAp+M8B2hg+w=+hLc7VGz0XbJg en mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

Buenas noches,

Tengo una duda en cuanto a los slices de las cadenas y las listas.
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.

Muchas gracias.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20191016/2ac2e0e2/attachment-0001.html>

------------------------------

Message: 2
Date: Wed, 16 Oct 2019 10:51:33 +0300
From: Nahuel Defossé <nahuel.defosse en gmail.com>
To: Python Argentina <pyar en python.org.ar>
Subject: Re: [pyar] Duda sobre SLICES en cadenas&listas
Message-ID: <BE9887FE-9B1D-468A-9B25-B3DD7126DF0F en gmail.com>
Content-Type: text/plain;    charset=utf-8

Buen día Edgardo, 

las listas en Python, el primer elemento es siempre la posición 0. Esto aplica

En tu caso, b tiene 4 elementos, con los índices 0, 1, 2 y 3. Para poder hacer a[4] necesitarías tener una lista de 5 elementos.

Con respecto a los índices en rebanadas, si estos comienzan, o terminan fuera de el rango de la lista, el resultado es vacío, no se lanzan excepciones de fuera de rango en estos casos.


Saludos
Nahuel



> On 16 Oct 2019, at 08:33, Edgardo <edgardolor en gmail.com> wrote:
> 
> Buenas noches, 
> 
> Tengo una duda en cuanto a los slices de las cadenas y las listas.
> 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.
> 
> Muchas gracias.
> _______________________________________________
> 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



------------------------------

Message: 3
Date: Wed, 16 Oct 2019 09:59:38 +0200
From: Marcos Dione <mdione en grulic.org.ar>
To: Python Argentina <pyar en python.org.ar>
Subject: Re: [pyar] Duda sobre SLICES en cadenas&listas
Message-ID: <20191016075938.GA10630 en diablo.grulicueva.local>
Content-Type: text/plain; charset=iso-8859-1

On Wed, Oct 16, 2019 at 02:33:49AM -0300, Edgardo wrote:
> Buenas noches,
> 
> Tengo una duda en cuanto a los slices de las cadenas y las listas.
> 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?

    opa, ésta no me la sabía/recordaba. no encuentro nada relevante en
    
https://docs.python.org/3/reference/expressions.html#slicings

    sin embargo encontré algo en un viejo what's new:
    
If you have a mutable sequence such as a list or an array you can assign
to or delete an extended slice, but there are some differences between
assignment to extended and regular slices. Assignment to a regular slice
can be used to change the length of the sequence:

>>> a = range(3)
>>> a
[0, 1, 2]
>>> a[1:3] = [4, 5, 6]
>>> a
[0, 4, 5, 6]

    así que supongo que la falta de IndexError o ValueError viene por el
lado de que podés extender lists usando slice assignment, y que srt
simplemente copió la semántica, a pesar de que son inmutables.

-- 
(Not so) Random fortune:
The technology industry sees itself as in rebellion against corporate
America: not corrupt, not buttoned-up, not empty. In fact, a tech company
can be as corrupt, soulless, and empty as any corporation, but being
unprofessional helps us maintain the belief that we are somehow different
from Wall Street.
        -- Shanley Kane


------------------------------

Message: 4
Date: Wed, 16 Oct 2019 09:41:37 -0300
From: Facundo Batista <facundobatista en gmail.com>
To: Python Argentina <pyar en python.org.ar>
Subject: Re: [pyar] Duda sobre SLICES en cadenas&listas
Message-ID:
    <CAM09pzSgo5a8qRNS9ydz5fVLy_ckj2jAVEia+-HOvUxeQXeo4A en mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"

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


------------------------------

Subject: Pié de página del digest

_______________________________________________
pyar mailing list
pyar en python.org.ar
http://listas.python.org.ar/listinfo/pyar

PyAr - Python Argentina - Sitio web: http://www.python.org.ar/


------------------------------

Fin de Resumen de pyar, Vol 116, Envío 29
******************************************
  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20191016/8b97c9cc/attachment-0001.html>


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