2016-04-06 35 views
-3

新しい辞書を辞書に追加したいと考えています。ネストされたdict pythonにdictを追加する

t = {} 
t['bush_mod']={} # Toplevel 
ana1 = {} 
ana1['ana1_lin_001']={} 
t['bush_mod'] = ana1 # Add below Toplevel 

ana2 = {} 
ana2['ana2_lin_001'] = {} 
ana2['ana2_lin_002'] = {} 

t['bush_mod'] = ana2 # Add below Toplevel 

私は私が望んでいない辞書tが上書きされますana2を追加します。

OUT: {'bush_mod': {'ana2_lin_001': {}, 'ana2_lin_002': {}}} 

Iは、トップレベル以下第二辞書(添付)としてana2を持っていると思いました。

OUT: {'bush_mod': {'ana1_lin_001': {}},{'ana2_lin_001': {}, 'ana2_lin_002': {}}} 

誰かが構文を助けてくれたら本当に役に立ちます。

ありがとうございます!

+0

あなたが望むのはリストだと思います – Claudiu

+4

もちろん、新しい値で同じキーを追加しています。キーごとに複数の値が必要な場合は、値としてリストを使用し、新しい各dictを追加する –

+0

返信ありがとうございました.iそれを動作させるためのリストとして変更しました – sat0408

答えて

1

ネストされた辞書に固執したい場合は、私はdict.updateはオプションかもしれないと思う:

t = {} 
t['bush_mod']={} 

ana1 = {} 
ana1['ana1_lin_001']={} 

ana2 = {} 
ana2['ana2_lin_001'] = {} 
ana2['ana2_lin_002'] = {} 

t['bush_mod'].update(ana1) 
t['bush_mod'].update(ana2) 

tがあるように:ここ

{'bush_mod': {'ana1_lin_001': {}, 'ana2_lin_001': {}, 'ana2_lin_002': {}}} 

dict.updateは、キーと値のペアを追加しますana1ana2からt['bush_mod辞書へ '

+0

これはまさに私が探していたものです。今度は私のコードの残りの部分を変更する必要はありません;)ありがとう – sat0408

-2

あなたがトン[「bush_mod」]にする必要があり

...あなたは二回「bush_mod」を使用しているため、それが上書きされ...辞書Tの各要素の個別のキーを使用する必要があります= []そのリストに物を追加します。

t['bush_mod'] = [] 
t['bush_mod'].append(ana1) 
t['bush_mod'].append(ana2) 
関連する問題