當前位置:
首頁 >
Python中赋值、浅拷贝、深拷贝
發布時間:2025/4/16
18
豆豆
生活随笔
收集整理的這篇文章主要介紹了
Python中赋值、浅拷贝、深拷贝
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、賦值
Python中賦值就是對對象的簡單引用,這一點與C++不同,如下:
二、淺拷貝(shallow copy)
淺拷貝會創建新對象,其內容非原對象本身的引用,而是原對象內第一層對象的引用。 淺拷貝有三種形式:切片操作、工廠函數、copy模塊中的copy函數。比如上述的列表a;
切片操作:b = a[:]或者b = [x for x in a];
工廠函數: b = list(a);
copy函數: b = copy.copy(a);
三、深拷貝(deep copy)
深拷貝只有一種形式,copy 模塊中的 deepcopy()函數。 深拷貝和淺拷貝對應,深拷貝拷貝了對象的所有元素,包括多層嵌套的元素。因此,它的時間和空 間開銷要高。 同樣的對列表 a,如果使用 b = copy.deepcopy(a),再修改列表 b 將不會影響到列表 a,即使嵌 套的列表具有更深的層次,也不會產生任何影響,因為深拷貝拷貝出來的對象根本就是一個全新的對 象,不再與原來的對象有任何的關聯。四、拷貝的注意點?
對于非容器類型,如數字、字符,以及其他的“原子”類型,沒有拷貝一說,產生的都是原對象的引用。 如果元組變量值包含原子類型對象,即使采用了深拷貝,也只能得到淺拷貝。總結
以上是生活随笔為你收集整理的Python中赋值、浅拷贝、深拷贝的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中几种交换2个变量的值的方法
- 下一篇: ubuntu 18.04安装oh my