- 主题:Python对象的深拷贝如图,为啥5和6不是共享的?
Python对象的深拷贝如图,为啥5和6不是共享的?
import copy
a= ['hello',3,[3,5,6]]
b = copy.deepcopy(a)

--
FROM 218.108.214.*
常量和变量的处理是不同的
【 在 ooolinux (ooolinux) 的大作中提到: 】
: 发信人: ooolinux (ooolinux), 信区: Python
: 标 题: Python对象的深拷贝如图,为啥5和6不是共享的?
: 发信站: 水木社区 (Wed Feb 19 03:25:22 2025), 转信
:
--
FROM 222.129.0.*
【 在 ooolinux 的大作中提到: 】
: Python对象的深拷贝如图,为啥5和6不是共享的?
: import copy
: a= ['hello',3,[3,5,6]]
: ...................
浅拷贝, a[3][0] 和 b[3][0] 如果其中一个改变了 例如 a[3][0] =100, 那么你读b[3][0]它也变成100。
深拷贝, a[3][0] 和 b[3][0] 如果其中一个改变,另一个是不变的, 因此, 5和6需要深度副本, 值是独立。
--
FROM 124.126.2.*
为啥[3,5,6]中的3是共享的?
【 在 ooolinux 的大作中提到: 】
: Python对象的深拷贝如图,为啥5和6不是共享的?
: import copy
: a= ['hello',3,[3,5,6]]
: ...................
--
FROM 112.96.225.*
是不是画错了,反正看看得了
【 在 ooolinux 的大作中提到: 】
: Python对象的深拷贝如图,为啥5和6不是共享的?
: import copy
: a= ['hello',3,[3,5,6]]
: ...................
--
修改:gfkid FROM 114.249.21.*
FROM 114.249.21.*
列表中的3和外边的3是共享的?这个确认过么
【 在 ooolinux 的大作中提到: 】
: Python对象的深拷贝如图,为啥5和6不是共享的?
: import copy
: a= \['hello',3,\[3,5,6\]\]
: b = copy.deepcopy(a)
:
:
https://static.mysmth.net/nForum/att/Python: ..................
发自「今日水木 on iPhone 12」
--
FROM 111.183.25.*
我觉得是这个图画的不准确
【 在 ooolinux 的大作中提到: 】
: Python对象的深拷贝如图,为啥5和6不是共享的?
: import copy
: a= ['hello',3,[3,5,6]]
: ...................
--
FROM 223.72.70.*
因为3是常数,一个实例会指定给所有引用。 [3,5,6]这个数组也不例外用到了这个实例。 如果给它重新赋值引用地址就变了。
【 在 chglele 的大作中提到: 】
: 列表中的3和外边的3是共享的?这个确认过么
: 发自「今日水木 on iPhone 12」
--
FROM 106.39.107.*
>>> import copy
>>> a= ['hello',3,[3,5,6]]
>>> b=copy.deepcopy(a)
>>> id(a[0])
64414560
>>> id(b[0])
64414560
>>> id(a[1])
1679271888
>>> id(b[1])
1679271888
>>> id(a[2])
64334312
>>> id(b[2])
33316680
>>> id(a[2][0])
1679271888
>>> id(b[2][0])
1679271888
>>> id(a[2][1])
1679271920
>>> id(b[2][1])
1679271920
>>> id(a[2][2])
1679271936
>>> id(b[2][2])
1679271936
>>>
--
FROM 218.108.214.*
我输出各元素id值,应该是图错了
【 在 Beijing2O22 的大作中提到: 】
: 常量和变量的处理是不同的
:
--
FROM 218.108.214.*