Questions about list-creation

inhahe inhahe at gmail.com
Mon Nov 30 13:12:52 EST 2009


On Mon, Nov 30, 2009 at 12:22 PM, Manuel Graune <manuel.graune at koeln.de> wrote:
>
> Hello,
>
> in (most) python documentation the syntax "list()"
> and "[]" is treated as being more or less the same
> thing. For example "help([])" and "help(list())" point
> to the same documentation. Since there are at least
> two cases where this similarity is not the case, (see below)
> can someone explain the reasoning behind this and point to
> further / relevant documentation?
> (To clarify: I am not complaining about this, just asking.)
>
>
> 1.)
>
> when using local variables in list comprehensions, say
>
> a=[i for i in xrange(10)]
>
> the local variable is not destroyed afterwards:
>
> print "a",a
> print "i",i
>
> using the similar code
>
> b=list(j for j in xrange(10))
>
> the local variable is destroyed after use:
>
> print "b",b
> print "j",j
>

I could be wrong, but I think this was actually a bug that was fixed later.

> and 2)
>
> a=list([])
>
> vs.
>
> b=[[]]
>

those don't return the same thing
list([]) will create a shallow copy of [], which will of course be []

i can't think of a place where you'd want to use list() instead of [],
but sometimes you might want to use 'list', such as in a defaultdict,
in which case it's being used as a factory

>
> Regards,
>
> Manuel Graune
>
> --
> A hundred men did the rational thing. The sum of those rational choices was
> called panic. Neal Stephenson -- System of the world
> http://www.graune.org/GnuPG_pubkey.asc
> Key fingerprint = 1E44 9CBD DEE4 9E07 5E0A  5828 5476 7E92 2DB4 3C99
> --
> http://mail.python.org/mailman/listinfo/python-list
>



More information about the Python-list mailing list