python中的深拷貝和淺拷貝(面試題)


一、淺拷貝

定義:淺拷貝只是對另外一個變量的內存地址的拷貝,這兩個變量指向同一個內存地址的變量值。

淺拷貝的特點:

  • 公用一個值;
  • 這兩個變量的內存地址一樣;
  • 對其中一個變量的值改變,另外一個變量的值也會改變;
>>> a=[11,22,33] >>> b=a >>> id(a) 40488632 >>> id(b) 40488632
>>> a is b True >>> a.append(44) >>> a [11, 22, 33, 44] >>> b [11, 22, 33, 44] >>> 

二、深拷貝:

定義:一個變量對另外一個變量的值拷貝。

深拷貝的特點:

  • 兩個變量的內存地址不同;
  • 兩個變量各有自己的值,且互不影響;
  • 對其任意一個變量的值的改變不會影響另外一個;
>>> import copy
>>> a=[11,22,33]
>>> b=copy.deepcopy(a)
>>> a
[11, 22, 33]
>>> b
[11, 22, 33]
>>> id(a) 40489528 >>> id(b) 40505392
>>> a.append(44)
>>> a
[11, 22, 33, 44] >>> b [11, 22, 33]
>>> 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM