0

基本的に、複数の関係をプロットし、それらをリストまたは辞書に保存するための参照を作成しようとしています。

基本的:

variable1 = 10

// この場合、'ref' は変数が参照であることを示します)
listA = [variable1(ref), variable2, variable3]
listB = [variable1(ref), variable4, variable5]

for i in listA:
i = i + 10

for i in listB:
i = i + 10

print listA[0]
// 30 を出力する必要があります

print listB[0]
// 30 を出力する必要があります

同じ変数への 2 つの参照を 2 つの別々のリストに分割するにはどうすればよいですか?

4

1 に答える 1

1

それぞれが同じコレクションのキーを含む 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 番目の例
于 2013-09-21T21:33:18.787 に答える