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