Python基础教程:copy()和deepcopy()
生活随笔
收集整理的這篇文章主要介紹了
Python基础教程:copy()和deepcopy()
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在處理列表和字典時,盡管傳遞引用常常是最方便的方法,但如果函數修改了傳入的列表或字典,你可能不希望這些變動影響原來的列表或字典。要做到這一點,Python提供了名為copy的模塊,其中包含copy()和deepcopy()函數。
第一個函數copy.copy(),可以用來復制列表或字典這樣的可變值,而不是只復制引用。
兩者的區別是copy.copy()是這復制了列表或字典的值,但是引用還是同一個。而copy.deepcopy()是產生一個新的引用使新的變量和被復制變量引用不同??聪旅娴氖纠a:
1、copy.copy(),示例代碼:
import copy spam = ['A','B','C','D',[1,2,3,4]] cheese = copy.copy(spam) spam[0] = 42 print(spam)運行結果:
[42,'B','C','D',[1,2,3,4]]根據結果可以看出,使用copy.copy()函數時,cheese是復制了spam列表引用,對spam列表操作時,也會對cheese列表產生影響。這也被稱為淺copy。
2、deepcopy.copy(),示例代碼:
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' import copy spam = ['A','B','C','D',[1,2,3,4]] cheese = copy.deepcopy(spam)#不同部分 spam[0] = 42 print(spam)運行結果:
[42,'B','C','D',[1,2,3,4]]根據結果可以看出,使用deepcopy()時,對spam列表操作不會對cheese列表產生影響,這是因為deepcopy()是產生一個新的引用,這樣spam和cheese
是兩個不同的引用所以在對spam列表操作時不會對cheese列表產生影響。
總結
以上是生活随笔為你收集整理的Python基础教程:copy()和deepcopy()的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python对字符串进行左右中对齐
- 下一篇: Python基础教程:in和not in