copy()——python中列表和字典的深拷貝與淺拷貝

       在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 """
相關文章
相關標籤/搜索