在现有的python字典中添加新密钥

时间:2017-06-21 16:03:02

标签: python dictionary key

我有一本字典:

oldDict = {'a': 'apple', 'b': 'boy', 'c': 'cat'}

我想要一个新字典,其中旧字典中的一个值为新键,所有元素为值:

newDict = {'apple': {'a': 'apple', 'b': 'boy', 'c': 'cat'}}

我试过这样做:

newDict['apple'] = oldDict

这似乎不起作用。请注意,我的脚本中没有变量newDict。我只有oldDict,我需要修改它以在每个循环中进行此更改。最后我会有一本字典,看起来像这样。

oldDict = {'apple': {'a': 'apple', 'b': 'boy', 'c': 'cat'}, 'dog': {'d': 'dog', 'e': 'egg'}}

2 个答案:

答案 0 :(得分:1)

您需要复制字典,这样就不会创建循环引用。

>>> newDict = {'apple': {'a': 'apple', 'b': 'boy', 'c': 'cat'}}
>>> newDict['potato'] = dict(newDict)
>>> newDict
{'apple': {'a': 'apple', 'c': 'cat', 'b': 'boy'}, 'potato': {'apple': {'a': 'apple', 'c': 'cat', 'b': 'boy'}}}

答案 1 :(得分:0)

您需要首先创建/声明字典,然后才能将项目添加到其中

oldDict = {'a': 'apple', 'b': 'boy', 'c': 'cat'}
newDict = {}
newDict['apple'] = oldDict
# {'apple': {'a': 'apple', 'b': 'boy', 'c': 'cat'}}

# you can 1st create the newDict outside the loop then update it inside the loop
>>> newDict = {}
>>> dict1 = {'a': 'apple', 'b': 'boy', 'c': 'cat'}
>>> dict2 = {'d': 'dog', 'e': 'egg'}
>>> newDict['apple'] = dict1
>>> newDict['dog'] = dict2
>>> newDict
>>> {'apple': {'a': 'apple', 'b': 'boy', 'c': 'cat'}, 'dog': {'d': 'dog', 'e': 'egg'}}

或者你可以这样做

newDict = {'apple':oldDict}