2017-07-13 6 views
1

の値として、既存の辞書に新しい辞書を追加します。 私は辞書を持っているキー

my_dict = { 
    "apples":"21", 
    "vegetables":"30", 
    "sesame":"45", 
    "papaya":"18", 
} 

new_dict={} 
new_value_for_dict={} 

for key in my_dict: 
    new_value_for_dict[key]= my_dict[key] 
    new_dict[key]= new_value_for_dict 
    # need to clear the last key,value of the "new_value_for_dict" 

print(new_dict) 

....このようなコードを書いて、出力はこのよう来る:

{'vegitables':{'vegitables': '30', 'saseme': '45', 
       'apples': '21','papaya': '18'}, 
'saseme':{'vegitables': '30', 'saseme': '45', 
      'apples': '21', 'papaya': '18'}, 
'apples': {'vegitables': '30', 'saseme': '45', 
      'apples': '21', 'papaya': '18'}, 
'papaya': {'vegitables': '30', 'saseme': '45', 
      'apples': '21', 'papaya': '18'} 
} 

しかし、私は予想通りではありません。どのように繰り返しを排除するのですか? どうすれば修正できますか?

+1

あなた:コメントで@AshwiniChaudharyで述べたように

、あなたは単に各繰り返しで新たなインナー辞書を再現するために、ループ内new_value_for_dict={}を移動することができます同じ辞書を何度も繰り返し使用しています。共有したくない場合はコピーを作成してください。**ループ内で新しい辞書を作成してください**。 –

+0

ループの下で単に 'new_value_for_dict = {}'を移動してください。 –

+0

助けてくれてありがとう –

答えて

4

あなたは、単に理解して新しい辞書を作成することができます。私も、そうする理由が表示されない

>>> {k:{k:v} for k,v in my_dict.items()} 
{'sesame': {'sesame': '45'}, 'vegetables': {'vegetables': '30'}, 'papaya': {'papaya': '18'}, 'apples': {'apples': '21'}} 

。より多くの情報を得ることはできませんが、dict値を繰り返したり情報を取得することは難しくなります。ほとんどそこ

my_dict = { 
    "apples":"21", 
    "vegetables":"30", 
    "sesame":"45", 
    "papaya":"18", 
} 

new_dict={} 

for key in my_dict: 
    new_value_for_dict={} 
    new_value_for_dict[key]= my_dict[key] 
    new_dict[key]= new_value_for_dict 

print(new_dict) 
+0

この度はありがとうございました! –

1

for key in my_dict: 
...  my_dict[key]={key:my_dict.get(key)} 
関連する問題