What about two lists, each containing keys of the same collection, say dictionary?
For example:
MASTER = [10,11,12,13,14]
LISTA = [0,1,2]
LISTB = [0,3,4]
for i in LISTA: MASTER[i] += 10
for i in LISTB: MASTER[i] += 10
print MASTER[LISTA[0]]
print MASTER[LISTB[0]]
ideone example
Or using a wrapper class:
class SharedInt:
val = None
def __init__(self, v): self.val = v
def __add__(self, a):
self.val += a
return self.val
def __int__(self): return self.val
v1 = SharedInt(10)
listA = [v1, 11, 12]
listB = [v1, 13, 14]
for i in listA: i += 10
for i in listB: i += 10
print int(listA[0])
print int(listB[0])
ideone example
Lastly, or using embedded lists:
v1 = [10]
listA = [v1, 11, 12]
listB = [v1, 13, 14]
for i in listA:
if isinstance(i, list): i[0] += 10
else: i += 10
for i in listB:
if isinstance(i, list): i[0] += 10
else: i += 10
print listA[0]
print listB[0]
ideone example
Note that the first example treats all of your ListX members as "references" while the last two examples treats the members as "values", unless you make them SharedInt()
s or enclose them in a list respectively.
In other words,
LISTA[1] = 21 # First example
ListA[1] = 11 # Second, third examples