I would have guessed that calling list() on a list was a noop. I would be wrong. Surprised, but wrong.
I guess it's probably worth pointing out that most builtin mutable types can be copied using the type constructor:
py> def check(obj):
... copy = type(obj)(obj)
... print id(obj), id(copy)
... return copy
...
py> check([1, 2])
18124312 18124752
[1, 2]
py> check({1:2})
18102720 18126720
{1: 2}
py> check(set([1, 2]))
9675672 9675504
set([1, 2])For immutable types, this is indeed basically a noop:
py> check(12)
3303412 3303412
12
py> check('12')
18120128 18120128
'12'
py> check((1, 2))
18122552 18122552
(1, 2)Steve -- http://mail.python.org/mailman/listinfo/python-list
