我有一本字典:
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'}}
答案 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}