python基础 30 浅复制&深复制, copy & deepcopy (教学教程tutorial)
Ғылым және технология
详细文字教程: morvanzhou.github.io/tutorials/
python3 简单教学教程
本节练习代码:github.com/MorvanZhou/tutoria...
这次讲的是深度复制和浅复制,他们都有各自不同的区别.深复制是完全复制并存储区不同的空间,浅复制是不完全复制,没有全部存储去不同的空间.
播放列表: • python基础 中文
我创建的学习网站: morvanzhou.github.io/tutorials/
微博更新: 莫烦python
Пікірлер: 24
a=b 代表內容和內存完全共用 a=copy.copy(b) 代表除了第一層以外的數值仍然共用內存 a=copy.deepcopy(b) 代表a與b雖然內容物相同,但內存位址已經完全不同,是不一樣的兩個東西 而共用內存的部分如果動到,a和b兩者的數值都會改變,請問我這樣理解有錯誤嗎?
謝謝分享 覺得很多觀念都比我去上基礎班的老師講得更清楚從第一集看到現在每次看完視頻都會在看一下大家下面的問題有時候跟我自己的問題是一樣的 或是網友有其他的見解都收益良多^^教學相長 很棒
a = [1,2,[3,4]] b = copy.copy(a) id(a[0]) == id(b[0]) // TRUE A shallow copy constructs a new compound object and then (to the extent possible) inserts references into it to the objects found in the original.
‘’=‘’ 前后是同一个对象 a = copy.copy(x) 只是复制的第一层,其余层是同一个对象 a = copy.deepcopy(x) 把所有层都复制了一遍,属于不同的对象
@berocks2
7 жыл бұрын
水土不服舅服你。。。
@Rich-jw8ti
6 жыл бұрын
你比他适合当老师。 他这货就是个坑,听他讲讲大体概念还行,一讲细致就完蛋。。
@iytoa4227
6 жыл бұрын
为什么我用pycharm 输入id(a)没有反应?
@user-iy4dx1gy6c
5 жыл бұрын
@@Rich-jw8ti 你行你拍个视频?不讨论问题,尽在这瞎bb
尝试后有问题想请教老师: 基于视频中的例子, a=[1,2,[3,4]] e=copy.deepcopy(a) 当我想要检测 a 之中第2位的内置列表中的第0位 :3 是否具有独一储存空间时候 id(e[2][0])==id(a[2][0]) 这时结果为True 所以即使是deepcopy了, list 之中的list 之中的 内容还是在同一个储存空间吗?
好帅
加油!!!!基础看完了应该去做些什么呢?
仅改变a当中第三个元素为单元素列表的话,a和d就不同了。如果a = [1,2,[3,4]],d=copy.copy(a),仅改变a当中第三个元素为单元素列表,即a[2]=33。这样的话,a=[1,2,33],d=[1,2,[3,4]。
能讲一下python里的图像处理吗?
应该说一下python中的可变对象和不可变对象 会更好理解。
第一种叫做,引用拷贝 吗?
id 应该是取得内存地址吧
watched 3rd time of this video, don't understand deep copy. could you give me an example of deep copy clearly?
@nawei9864
8 жыл бұрын
Thanks.
import copy a=(1,2,3) b=copy.copy(a) print(id(a)==id(b)) 得到True import copy a=[1,2,3] b=copy.copy(a) print(id(a)==id(b)) 得到False 所以淺複製會把列表中的內容存到另一個地方?
@BigBlindShark
6 жыл бұрын
>>> a[0]=1111 >>> b[0] 1
@BigBlindShark
6 жыл бұрын
我用python2.7,跟版本有關嗎
@chrischen9678
6 жыл бұрын
是因為淺複製會把列表的「位址」存到另一塊記憶體上
内存
感覺越來越難了