dictOne = {'a':1, 'b':2}
dictTwo = {'aa':dictOne['a'], 'bb':dictOne['b']}
print(dictTwo['aa']
# returns 1
への変更を登録しません。第二のdictは最初
print(dictTwo['aa'])
# returns 1
ここで何が起こっているか私はこれが何とかdictの不適切な使い方だと確信していますが、私は即座にこれを解決する必要があります。ありがとう。
dictOne = {'a':1, 'b':2}
dictTwo = {'aa':dictOne['a'], 'bb':dictOne['b']}
print(dictTwo['aa']
# returns 1
への変更を登録しません。第二のdictは最初
print(dictTwo['aa'])
# returns 1
ここで何が起こっているか私はこれが何とかdictの不適切な使い方だと確信していますが、私は即座にこれを解決する必要があります。ありがとう。
あなたは問題の詳細を知らなくてもpython FAQ on pass by assignment
を読んで、いくつかの値を見つけることができ、コード
dictTwo = {'aa':dictOne['a']}
の下の部分に「」dictOne内部キーから値を抽出していますこれをどのように解決できるかを正確に言うのは難しいです。あなたは、キーの異なるセット間のマッピングを作成する必要がある場合は、のような何かをするためのオプションがあります:多分あなたが探しているものが
dictTwo = {'aa' : 'a', 'bb' : 'b'}
dictOne[dictTwo['aa']]
ここライン:
dictOne['a']
以来
dictTwo = {'aa':1, 'bb':2}
とdictOne['b']
両方が不変の値(整数)を返し、それらをコピーすることにより、およびない参照によって渡されます
dictTwo = {'aa':dictOne['a'], 'bb':dictOne['b']}
は以下と等価です。しかし、彼らは同じキー値を持つことになり、
How do I pass a variable by reference?あなたはまたdictTwo
を更新してしまうdictOne
を更新し、dictTwo = dictOne
を行っていた参照してください。
は、リンクいただきありがとうございます。私はこの問題をさらに詳しく見ていきます。 – micahel