python中deepcopy函数_Python学习笔记函数之copy()和deepcopy()
隨筆記錄方便自己和同路人查閱。
#------------------------------------------------我是可恥的分割線-------------------------------------------
在處理列表和字典時,盡管傳遞引用常常是最方便的方法,但如果函數修改了傳入的列表或字典,你可能不希望
這些變動影響原來的列表或字典。要做到這一點,Python提供了名為copy的模塊,其中包含copy()和deepcopy()函數。
第一個函數copy.copy(),可以用來復制列表或字典這樣的可變值,而不是只復制引用。
兩者的區別是copy.copy()是這復制了列表或字典的值,但是引用還是同一個。而copy.deepcopy()是產生一個新的
引用使新的變量和被復制變量引用不同。看下面的示例代碼:
#------------------------------------------------我是可恥的分割線-------------------------------------------
1、copy.copy(),示例代碼:
#
# -*- coding:utf-8 -*-
# Autor: Li Rong Yang
import copy
spam = ['A','B','C','D',[1,2,3,4]]
cheese = copy.copy(spam)
spam[0] = 42
print(spam)
運行結果:
根據結果可以看出,使用copy.copy()函數時,cheese是復制了spam列表引用,對spam列表操作時,也會對cheese列表產生影響。這也被稱為淺copy。
2、deepcopy.copy(),示例代碼:
#
# -*- coding:utf-8 -*-
# Autor: Li Rong Yang
import copy
spam = ['A','B','C','D',[1,2,3,4]]
cheese = copy.deepcopy(spam)#不同部分
spam[0] = 42
print(spam)
運行結果:
根據結果可以看出,使用deepcopy()時,對spam列表操作不會對cheese列表產生影響,這是因為deepcopy()是產生一個新的引用,這樣spam和cheese
是兩個不同的引用所以在對spam列表操作時不會對cheese列表產生影響。
總結
以上是生活随笔為你收集整理的python中deepcopy函数_Python学习笔记函数之copy()和deepcopy()的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html文本最小长度,CSS中处理不同长
- 下一篇: ajax参数是json数据类型,如何保护