2016-10-16 3 views
-3

を使用した場合の辞書は上書き、それは私が「」キーの上書きを回避するにはどうすればよいのpython:私はニシキヘビの方法で辞書を作成する場合はニシキヘビの方法

ans = ['car','bus'] 
exp = ['a','b'] 
for ex in exp: 
    b ={x: {ex: {'1:N': [],'2:N': []}} for x in ans} 

を上書きされますか?

+1

代わりに何をしたいですか? –

+0

辞書を辞書に設定するのではなく、辞書を辞書に設定します。 – baranskistad

+1

最終結果が正確になるようにもっと明確にしてください – idjaw

答えて

1

あなたは初心者のようですので、私はあなたのプログラムをより小さな部分に分割してデバッグすることをお勧めします。 =オペレータは、常に新しいコピーを作成された再割り当てを行うと、あなたはそれがこの

ans = ['car','bus'] 
exp = ['a','b'] 


b = {x:{'1:N': [],'2:N': []} for x in exp} 
print(b) 

のようなあなたのコードを壊す場合でも、変更可能なデータ型

のための既存の変数を変更しないので、あなたのケースの辞書に は上書きなっていますあなたはこの
b = {a:{x:{'1:N': [],'2:N': []} for x in exp} for a in ans}などの辞書の理解を変更した場合
{'b': {'2:N': [], '1:N': []}, 'a': {'2:N': [], '1:N': []}}

を与えるだろう

、あなたは、私はこれがあなたが望むものであると信じて出力
{'bus': {'b': {'2:N': [], '1:N': []}, 'a': {'2:N': [], '1:N': []}}, 'car': {'b': {'2:N': [], '1:N': []}, 'a': {'2:N': [], '1:N': []}}}

になるだろう、それが助けなら、私に知らせてください。

関連する問題