在Python中,把列表,字典對象賦值給變量時,都是「淺拷貝」,即,變量指向了對象,原來的對象改變了,這個變量的值也會跟着變。而cop()函數是「深拷貝」,從新創造一個新對象賦值給變量,原來的對象的改變不影響新對象。搞清楚深拷貝與淺拷貝有利於避免不少錯誤函數
類比C語言中的指針,把d1比做指針,使用’d2=d1‘語句對字典名d1進行淺拷貝就比如只是建立了另一個指向d1的指針d2,d2和d1指向的都是同一段數據,而使用copy()方法後的’d3 = d1.copy()‘,至關於又從新申請了一段內存用來把d1指向的數據複製過來,我的看法,若是錯誤了請批評指正spa
具體代碼示例以下所示:指針
1 d1 = {'a':1} 2 3 d2 = d1 # 淺拷貝 4 d3 = d1.copy() # 深拷貝 5 6 d1['a'] = 2 # 改變原來的字典 7 8 print('d1=',d1) 9 print('d2=',d2) 10 print('d3=',d3) 11 12 13 """ 14 輸出結果以下: 15 d1= {'a': 2} 16 d2= {'a': 2} 17 d3= {'a': 1} 18 """