将新字典添加到现有字典作为键的值[重复]

Posted

技术标签:

【中文标题】将新字典添加到现有字典作为键的值[重复]【英文标题】:Add a new dict to a existing dictionary as a value to the key [duplicate] 【发布时间】:2017-12-17 20:36:41 【问题描述】:

我有一本字典:

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

我想生成一个新的,如下所示:

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

我写了这样的代码....

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'

但这不是我所期望的。如何消除重复? 我该如何纠正?

【问题讨论】:

您一遍又一遍地重复使用同一个字典。如果您不想共享它,请创建一个副本,或者更好的是,在循环中创建一个新字典 只需将new_value_for_dict=移到循环下方即可。 【参考方案1】:

你可以简单地创建一个带有理解的新字典:

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

不过,我认为没有任何理由这样做。您不会获得更多信息,但迭代 dict 值或检索信息变得更加困难。

正如 @AshwiniChaudhary 在 cmets 中提到的,您可以简单地将 new_value_for_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)

【讨论】:

感谢您的建议!【参考方案2】:

差不多了

for key in my_dict:
...     my_dict[key]=key:my_dict.get(key)

【讨论】:

以上是关于将新字典添加到现有字典作为键的值[重复]的主要内容,如果未能解决你的问题,请参考以下文章

我想从python中的字典字典中制作一个字典[重复]

字典使所有键的值等于最近的键/值添加

如何将数组中键的值添加到字典中? [关闭]

如何从字典列表中向现有键值对添加新的键值对?

添加到字典列表 - python

如何使用 SQLAlchemy 将新字典添加到字典列表中