應為在python中dict是可變對象。用dic1賦值給dic3後,並沒有創建壹個新的對象,dic3和dic1指向同壹個對象。通過dic3改變其內容,就如同通過dic1改變對象內容壹樣。
具體的內容妳可以看看深拷貝和淺拷貝
import?copydef?com_weight(dic1,dic2):
dic3?=?copy.deepcopy(dic1)?#深拷貝,,,,
for?i?in?dic1.keys():
for?j?in?dic1[i].keys():
dic3[i][j]=dic1[i][j]-dic2[i][j]
print?dic3
if?__name__=='__main__':
dic1?=?{1:?{1:?142264,?2:?142315},?2:?{3:?142111},?3:?{3:?142723}}
dic2?=?{1:?{1:?142263,?2:?142312},?2:?{3:?142110},?3:?{3:?142722}}
print?'__________________'
print?dic1
print?dic2
print?'*******************'
com_weight(dic1,?dic2)
print?'~~~~~~~~~~~~~~~~~~~~~~~~'
print?dic1
print?dic2