On Thu, 29 Mar 2007 04:49:17 +0000, Dennis Lee Bieber wrote:

> On 28 Mar 2007 18:16:31 -0700, [EMAIL PROTECTED] declaimed the
> following in comp.lang.python:
> 
> 
>> what do you mean by create new object when using list comprehensoin or
>> list()? Does using slicing create a new object as well?
> 
>       If the destination is a bare name, YES.
> 
>       If the destination is a slice of a list, then one is merely
> replacing the contents in that slice, but leaving the other parts of the
> list in place.

Maybe so, but the slice doesn't know where it is being assigned to. It
still has to generate a new list object, which is then stored in the
appropriate part of the left-hand list object.

I suppose a sufficiently clever optimizing compiler might not do it
that way, but looking at some code with dis.dis() I'm pretty sure Python
does create the new list first.


-- 
Steven

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to