[Tutor] how to make a reference to part of list?
Kent Johnson
kent37 at tds.net
Mon Oct 2 13:57:31 CEST 2006
Xie Chao wrote:
> Namely, if list1 = {1, 2, 3}, and I wanna make a reference, say
> "ref", to list1's sublist (which is also of type list), say {2, 3}, so
> that when I make change to ref[0], then list1[1] will be changed!
> But how can I make such a reference, 3x!
There is nothing built-in to Python that will let you do this. I don't
think it would be too hard to write a class that does what you want for
basic indexing operations. I would start with a copy of UserList (in
module UserList). If you go beyond simple indexing and slicing I think
you will have trouble. Say you have a class RefList that does what you
want, and suppose you have
a = [1, 2, 3]
b = RefList(a, 1, 2)
b is [2, 3]
c = RefList(a, 0, 1)
c is [1, 2]
Now what is the result of d=b+c? Is it a RefList with two references to
a, that looks like [1, 2, 2, 3]? What is the value of d after d[1] = 0?
Is it [1, 0, 0, 3]?
Can you say more about why you want to do this? Maybe there is another
solution.
By the way list literals in Python are written with square brackets []
not curly braces {}.
Kent
More information about the Tutor
mailing list