[pyar] ¿Volvemos a empezar?

Fernando Pelliccioni fpelliccioni en gmail.com
Mie Abr 30 19:49:18 ART 2014


2014-04-30 19:47 GMT-03:00 Fernando Pelliccioni <fpelliccioni en gmail.com>:

>
>
>
> 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
>
>
>
>
No dije nada. El ultimo ejemplo es lo mismo que el anterior.


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


More information about the pyar mailing list