On Mon, Nov 30, 2009 at 12:22 PM, Manuel Graune <manuel.gra...@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 > -- http://mail.python.org/mailman/listinfo/python-list