Zhenhai Zhang wrote:
Really weired; Here is my code:
a = ["a", 1, 3, 4]
print "a:", a
c = copy(a)
Where do you get this copy() function?
t...@rubbish:~$ python2.5
Python 2.5.4 (r254:67916, Feb 17 2009, 20:16:45)
>>> help(copy)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'copy' is not defined
There is no "copy" in the python default namespace. So you must
have gotten it somewhere. However, if you got it from the stdlib:
>>> from copy import copy
>>> a = ["a", 1,2,3]
>>> b = copy(a)
>>> b[0] = "b"
>>> b[1] = 42
>>> print b
['b', 42, 2, 3]
it would work as evidenced here. Thus your code shows this is
some custom copy() function which you didn't include in your
message. Therein lies your problem.
For shallow-copying lists, you'll usually find it written as
b = a[:]
The "copy" module is more useful for complex data-structures and
deep-copies.
-tkc
--
http://mail.python.org/mailman/listinfo/python-list