understanding list scope
George Sakkis
george.sakkis at gmail.com
Sun Sep 21 09:07:49 EDT 2008
On Sep 21, 8:51 am, Alex <metallourla... at gmail.com> wrote:
> Hi all!
>
> I have a problem understanding the behaviour of this snippet:
>
> data_set = ({"param":"a"},{"param":"b"},{"param":"c"})
>
> for i in range(len(data_set)):
> ds = data_set[:]
> data = ds[i]
> if i == 1: data['param'] = "y"
> if i == 2: data['param'] = "x"
>
> print data_set
>
> This script print out:
> ({'param': 'a'}, {'param': 'y'}, {'param': 'x'})
>
> Why? I'm coping data_set in ds so why data_set is changed?
Because you're doing a shallow copy: http://docs.python.org/lib/module-copy.html
George
More information about the Python-list
mailing list