Duplicated List...
David Porter
jcm at bigskytel.com
Tue Dec 26 05:09:03 EST 2000
More information about the Python-list mailing list
Tue Dec 26 05:09:03 EST 2000
- Previous message (by thread): Duplicated List...
- Next message (by thread): xml-rpc server in python returning python lists...
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
* dyo <dyo at shinbiro.com>: > >>> a=[1,2,3] > >>> b=[a,10,20,30] > >>> b[0].append('x') > >>> b > [[1, 2, 3, 1, 2, 3, 'x'], 10, 20, 30] > >>> a > [1, 2, 3, 1, 2, 3, 'x'] > >>> a.append('xxx') > >>> a > [1, 2, 3, 1, 2, 3, 'x', 'xxx'] > >>> b > [[1, 2, 3, 1, 2, 3, 'x', 'xxx'], 10, 20, 30] a and b[0] are references to the same object (try id() to test this). So in both cases you are altering in place the same object. Since both a and b[0] point to the same object they are both altered. > But in this case.. > > >>> a=[1,1000] > >>> a > [1, 1000] > >>> b > [[1, 2, 3, 1, 2, 3, 'x', 'xxx'], 10, 20, 30] > >>> > > Why do not change List 'b' ? > What happen List 'b' ? You did not alter a in place this time. A new object was created with a pointing to it. b[0] still points to the old object. Since we know from above that altering in place will not create a new object, you can do this instead: >>> a[:]=[1,1000] >>> a [1, 1000] >>> b [[1, 1000], 10, 20, 30] David
- Previous message (by thread): Duplicated List...
- Next message (by thread): xml-rpc server in python returning python lists...
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list