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

Reply via email to