それぞれが同じコレクションのキーを含む 2 つのリスト、たとえば辞書はどうでしょうか?
例えば:
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]]
イデオンの例
または、ラッパー クラスを使用します。
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])
イデオンの例
最後に、または埋め込みリストを使用する:
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]
イデオンの例
最初の例ではすべての ListX メンバーを「参照」として扱いますが、最後の 2 つの例ではメンバーを「値」として扱いますSharedInt()
。
言い換えると、
LISTA[1] = 21 # 最初の例
ListA[1] = 11 # 2 番目、3 番目の例