我正在使用python 3.6,在我正在编写的程序中,比较一组字典的任何差异。如果发现它更新参考字典并清除数据。
首次启动时,它可以正常工作并注册第一个更改但是之后的每个更改都没有,只显示信息,但不会识别它已更改。它充当Πython将两个字典链接在一起。还有什么可以做的吗?
def Check_Data():
global Ref_Readings
print('Ref_Readings')
print(Ref_Readings)
print('Data')
print(Data)
a=Ref_Readings
b=Data
if (a != b):
print('**************Updated Data')
del Ref_Readings[:]
Ref_Readings = Data
#print(Ref_Readings)#
Store_Readings()
else:
print('checking Settings')
del Data[:]
print(Data)
答案 0 :(得分:1)
Ref_Readings = Data => a = b
Python使用引用。如果你想要两个不同的词典,你必须复制一份。
import copy
Ref_Readings = copy.deepcopy(Data)
答案 1 :(得分:0)
list_a = list_b使"内存指针匹配"。你必须使用副本库。
添加到开始:
Ref_Readings = copy(Data)
更改:
a=Ref_Readings
b=Data
你也可以删除
if (Data != Ref_readings):
并改变:
hbadef['3'] += ' ' + hbadef['4'] + ' ' + hbadef['5']