python:copy()和deepcopy()区别
生活随笔
收集整理的這篇文章主要介紹了
python:copy()和deepcopy()区别
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.對(duì)象的賦值?
都是進(jìn)行對(duì)象引用(內(nèi)存地址)傳遞,即‘’ b is a‘’ ,a 變 b 也變
2.copy.copy(x):淺拷貝
會(huì)創(chuàng)建一個(gè)新的對(duì)象,即 “b?is not a” ,但是,對(duì)于對(duì)象中的元素,淺拷貝就只會(huì)使用原始元素的引用(內(nèi)存地址),也就是說”b[i] is a[i]”
當(dāng)我們使用下面的操作的時(shí)候,會(huì)產(chǎn)生淺拷貝的效果:
- 使用切片[:]操作
- 使用工廠函數(shù)(如list/dir/set)
- 使用copy模塊中的copy()函數(shù)
3.copy.deepcopy(x[,?memo]):深拷貝
會(huì)創(chuàng)建一個(gè)新的對(duì)象,即”b?is not a”?,并且?對(duì)于對(duì)象中的元素,深拷貝都會(huì)重新生成一份(有特殊情況,下面會(huì)說明),而不是簡(jiǎn)單的使用原始元素的引用(內(nèi)存地址)
拷貝的特殊情況
其實(shí),對(duì)于拷貝有一些特殊情況:
- 對(duì)于非容器類型(如數(shù)字、字符串、和其他’原子’類型的對(duì)象)沒有拷貝這一說
- 如果元祖變量只包含原子類型對(duì)象,則不能深拷貝
?
總結(jié)
以上是生活随笔為你收集整理的python:copy()和deepcopy()区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pandas:apply(),apply
- 下一篇: 数据结构与算法:排序算法的稳定性以及各性