On Fri, 21 Oct 2005, Paul Dale wrote: > Is it possible to bind a list member or variable to a variable such that > > temp = 5 > list = [ temp ] > temp == 6 > list > > would show > > list = [ 6 ]
As you know by now, no. Like any problem in programming, this can be solved with a layer of abstraction: you need an object which behaves a bit like a variable, so that you can have multiple references to it. The simplest solution is to use a single-element list: >>> temp = [None] # set up the list >>> temp[0] = 5 >>> list = [temp] >>> temp[0] = 6 >>> list [[6]] I think this is a bit ugly - the point of a list is to hold a sequence of things, so doing this strikes me as a bit of an abuse. An alternative would be a class: class var: def __init__(self, value=None): self.value = value def __str__(self): # not necessary, but handy return "<<" + str(self.val) + ">>" >>> temp = var() >>> temp.value = 5 >>> list = [temp] >>> temp.value = 6 >>> list [<<6>>] This is more heavyweight, in terms of both code and execution resources, but it makes your intent clearer, which might make it worthwhile. tom -- Transform your language. -- http://mail.python.org/mailman/listinfo/python-list