[pyar] ¿Volvemos a empezar?

Fernando Pelliccioni fpelliccioni en gmail.com
Mie Abr 30 19:47:41 ART 2014


2014-04-30 19:45 GMT-03:00 Roberto Alsina <ralsina en netmanagers.com.ar>:

>  On 30/04/14 19:42, Fernando Pelliccioni wrote:
>
>
>
>
> 2014-04-30 19:31 GMT-03:00 Facundo Batista <facundobatista en gmail.com>:
>
>> 2014-04-30 19:02 GMT-03:00 Fernando Pelliccioni <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.
>
>

>>> a = "supercalifragilísticoespialidoso"
>>> b = a[:]
>>> b[0] = 'S'
TypeError: 'str' object does not support item assignment





_______________________________________________
> 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/
>
> 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/20140430/f8312824/attachment.html>


More information about the pyar mailing list