[pyar] ¿Volvemos a empezar?

Roberto Alsina ralsina en netmanagers.com.ar
Mie Abr 30 19:45:54 ART 2014


On 30/04/14 19:42, Fernando Pelliccioni wrote:
>
>
>
> 2014-04-30 19:31 GMT-03:00 Facundo Batista <facundobatista en gmail.com 
> <mailto:facundobatista en gmail.com>>:
>
>     2014-04-30 19:02 GMT-03:00 Fernando Pelliccioni
>     <fpelliccioni en gmail.com <mailto:fpelliccioni en gmail.com>>:
>
>     > Leyendo la documentación, no me queda claro si el slice implica
>     "recrear" el
>     > fragmento de la secuencia en otro pedazo de memoria o solo es
>     una forma de
>     > iterar la secuencia original.
>
>     El slice es una notación sintáctica, lo que está haciendo realmente es
>     decirle al objeto que devuelva determinadas cosas. Es responsabilidad
>     del objeto decidir qué devuelve.
>
>     Todos los tipos de datos builtin de Python devuelven (cuando son
>     "suscribibles"), otro objeto de ese mismo tipo [0], con las
>     referencias a los objetos originales.
>
>     Vemos como una tupla te devuelve una tupla, y una lista te devuelve
>     una lista, por ejemplo:
>
>     >>> (1, 2, 3)[:1]
>     (1,)
>     >>> a = [1, 2, "foo", [6, 7]]
>     >>> b
>     ['foo', [6, 7]]
>
>     Y vemos que los objetos *dentro* de esos objetos son los mismos:
>
>     >>> b[1] is a[3]
>     True
>
>     Un ejemplo de algo no subscribible:
>
>     >>> 3[:]
>     Traceback (most recent call last):
>       File "<stdin>", line 1, in <module>
>     TypeError: 'int' object is not subscriptable
>
>
>
>     > ¿Existe en Python alguna forma de verificar si algun elemento
>     esta siendo
>     > copiado?
>     > Lo pregunto, para poder verificar mi duda.
>
>     Poder ves si dos objetos son el mismo, comparando identidad, como
>     hice arriba.
>
>     Slds.
>
>
>     [0] Hay excepciones. Puntualmente me sorprendió esto:
>
>     >>> a = "supercalifragilísticoespialidoso"
>     >>> b = a[:]
>     >>> a is b
>     True
>
>
> Interesante... entonces, no es garantizado que haga copia, ni siquiera 
> shallow.
> Agrego
>
> >>> a[0] = 'S'
> TypeError: 'str' object does not support item assignment
>
>
> Seguro me estoy equivocando en algo. Como hago para reemplazar un 
> caracter del string por otro? (ya conozco el indice)
>


Los strings son inmutables. Tenés que crear un string nuevo.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140430/aebf37d0/attachment.html>


More information about the pyar mailing list