[pyar] ¿Volvemos a empezar?

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


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

>  On 30/04/14 19:23, Fernando Pelliccioni wrote:
>
>
> 2014-04-30 19:16 GMT-03:00 Pablo Gabriel Celayes <pablocelayes en gmail.com>:
>
>> El slice crea una lista nueva. De hecho, un atajo común para crear una
>> copia es hacer un slice sin parámetros:
>>
>
>  Perdón, pero, no se por qué hay algo que me hace dudar ...
> Seguro que crea una lista nueva?  (no se adelanten, ver abajo)...
> Hay una tecnica que se llama Copy-On-Write (COW) ...  (seguir leyendo)
>
>
>>
>>  In [1]: a = range(10)
>>
>>  In [2]: b = a[:]
>>
>
>  Hasta este punto, es probable que b no sea una lista nueva (copiada de
> a), ya que a = b.
>
>
> Ahi, ya es una copia. Python no hace copy-on-write de listas.
>
>
Gracias!


>
>
>
>>
>>  In [3]: b[0] = 20
>>
>
>
>  Como aca estoy modificando b, recien aca hago la copia ( Copy on Write )
> Ahora si son listas distintas, dos pedazos de memoria diferentes.
>
>
> Ya lo eran un paso antes. Un detalle tal vez interesante es que las listas
> son distintas pero los elementos son los mismos:
>
> >>> id(a), id(b)
> (140266986366848, 140266985952624)
>
> >>> id(a[0]), id(b[0])
> (10455008, 10455008)
>


Ah ah ah !!!
Entonces hace shallow copy.


>
>
>
>   Es una optimizacion usada en algunos lenguajes, pero desaconsejada en
> ciertos escenarios.
> Me pregunto si Python tambien la estará utilizando en casos como este.
>
>   No.
>


Gracias por la aclaración. Habiendo aprendido esto, puedo volver al
algoritmo de palindromos !


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


More information about the pyar mailing list