(Python 2.7 を使用)
後で入力するテンプレート オブジェクトの複製を作成しようとしています。簡単にするために、次のようにしようとしました。
template={'thing1':'','thing2':'','thing3':''}
for number in some_list:
pile[number]=template
しかし、後で私がこれをしたとき:
pile[1]['thing1']='blahblah'
また、次の結果になります。
print pile[2]['thing1']
'blahblah'
print template['thing1']
'blahblah'
私が欲しいのは
pile[1]['thing1']='blahblah'
パイル[2]をそのままにしておきます。
print pile[2]['thing1']
''
そして、私が言うとき、問題は
pile[number]=template
これは、pile[1] がテンプレートで、pile[2] がテンプレートであることを意味します。(これは、今日、これに取り組んでいるときに完全に実現したばかりです...そして、実現とその意味がゆっくりと浸透するにつれて、私はそれを大声で何度か繰り返しました...それがPythonの仕組みです、え? The python club. 私は MATLAB を使い始めたので、あまり荒っぽく言わないでください)。
したがって、これには2つの方法があると思います.1つは、オリジナルにリンクされていないオブジェクトの複製、またはそのようなものであり、おそらく非常に単純で明白です。また、キーなどの初期化など、ディクテーションに固有の別の方法があるかもしれません。私は主に最初の種類の答えに興味があります。なぜなら、それはpythonがどのように機能するかについての理解を深めるのに役立つからですが、2番目の種類の答えもいいでしょう。ありがとう :)