On Wed, 16 Jan 2008 13:59:03 +0800, J. Peng wrote:

> Hi,
> 
> How to modify the array passed to the function? I tried something like
> this:
> 
>>>> a
> [1, 2, 3]
>>>> def mytest(x):
> ...   x=[4,5,6]


This line does NOT modify the list [1, 2, 3]. What it does is create a 
new list, and assign it to the name "x". It doesn't change the existing 
list.


If you have not already done this, you should read this:

http://effbot.org/zone/python-objects.htm


Consider this function:

def test(alist):
    alist.append(0)  # this modifies the existing list
    alist = [1, 2, 3]  # this changes the name "alist"
    return alist


Now try it:

oldlist = [10, 9, 8, 7]
newlist = test(oldlist)


Can you predict what oldlist and newlist will be equal to?

oldlist will be [10, 9, 8, 7, 0] and newlist will be [1, 2, 3]. Do you 
see why?




-- 
Steven
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to