怎么决定dict [itr]

时间:2018-02-15 07:19:42

标签: python dictionary

将dict复制到带有dict数组的dict的合适方法是什么,并避免覆盖这些值。

尝试将dict复制到带有dict数组的dict时会覆盖该值。

import copy


l_mapFrameInfo = dict()
l_frame = dict()


itr =0

for Frames in FramesList:

l_frameInfo['name'] = Frames.get('name')    
l_frameInfo['number'] = Frames.get('number')           
l_mapFrameInfo[itr] = pcopy.deepcopy(l_frameInfo)    
itr+=1

从xml文件中读取名称和编号,该文件根据来自XML文件的值不断更改。

手术后: mydict中的所有字典名称和数字都会获得复制的最后一个字典的值

1 个答案:

答案 0 :(得分:0)

如果您的复制没有做您想做的事情,您可以使用理解深入到手动完成相关操作。如果字典包含包含字典的列表,则应执行以下操作:

my_dict = {'a': [{'c': 1, 'd': 2}], 'b': [{'e': 3}]}
my_dict_copy = {key: [dict(entry) for entry in val] for key, val in my_dict.items()}

可以测试:

my_dict['a'][0]['c'] = -1
print(my_dict['a'][0]['c'])
>> -1
print(my_dict_copy['a'][0]['c'])
>> 1

原件的更改没有触及副本。