检查词典中的更改

时间:2018-05-02 15:57:09

标签: python python-3.6

我正在使用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)

2 个答案:

答案 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']