Wynn_0303 发表于 2023-1-27 20:49:21

打卡

chenbocauc 发表于 2023-2-1 22:14:15

6666

Luce 发表于 2023-2-2 10:33:36

复习打卡完成

littlewhale 发表于 2023-2-28 14:49:06

今日份打卡~~~

YaphetS-Python 发表于 2023-3-2 21:26:21

copy.deepcopy(),深拷贝

清风扶月 发表于 2023-3-3 16:01:14

jackz008 发表于 2021-8-20 11:39
**** 作者被禁止或删除 内容自动屏蔽 ****

但x里的x和y里的y,这两个不同的引用,也是指向的都是同一个对象,而改变x,y也随着改变了。

1137687803 发表于 2023-3-13 20:50:22

**1.变量不是盒子**

在python中,变量不是一个盒子,当赋值运算发生时,python并不是将数据放到变量里边去,而是将变量与数据进行挂钩,这个行为我们称之为引用。

将一个变量赋值给另一个变量其实就是将一个变量的引用传递给另一个变量。

>>> x =
>>> y = x
>>> x = 1
>>> x

>>> y

[此时修改x的值,y的值也会随之改变]

**2.浅拷贝**

调用列表的copy方法

>>> x =
>>> y = x.copy()
>>> x = 1
>>> x

>>> y



利用切片的方法也可以实现拷贝的效果

>>> x =
>>> y = x[:]
>>> x = 1
>>> x

>>> y


浅拷贝方法无法处理嵌套列表

>>> x = [, , ]
>>> y = x.copy()
>>> x = 0
>>> x
[, , ]
>>> y
[, , ]
[浅拷贝只是拷贝了外层的对象,如果包含嵌套对象的话,只是其引用]

**3.copy模板**

有两个函数,copy实现的是浅拷贝,deepcopy实现的是深拷贝。

copy

>>> import copy
>>> x = [, , ]
>>> y = copy.copy(x)
>>> x = 0
>>> x
[, , ]
>>> y
[, , ],

deepcopy

>>> x = [, , ]
>>> y = copy.deepcopy(x)
>>> x = 0
>>> x
[, , ]
>>> y
[, , ]
[deepcopy将原对象拷贝的同时,也将对象中所有引用的子对象一并进行了拷贝
如果存在多层嵌套的话,深拷贝也会360度无死角地拷贝每一层嵌套里面的数据。]

默认使用的是浅拷贝,因为效率,深拷贝需要更多空间,浅拷贝只要复制地址就行了

为了60块 发表于 2023-3-22 22:48:36

tobio鸹 发表于 2020-8-21 09:46
**** 作者被禁止或删除 内容自动屏蔽 ****

应该是储存机制的原因吧

来自成都的momo 发表于 2023-4-7 19:41:15

呜呜呜加油加油坚持坚持慢慢搞懂他

justsingmysong 发表于 2023-6-4 12:03:12

1024

万恶的亚撒西 发表于 2023-8-4 16:52:51

快要没币了

FiatLux_ 发表于 2023-9-7 20:04:21

使用深拷贝   deepcopy   前,,先引用copy模块    import corp

137430724 发表于 2023-10-16 18:28:48

>>> import copy
>>> a=[,,]
>>> b=a
>>> c=a[:]
>>> d=a.copy()
>>> e=copy.copy(a)
>>> f=copy.deepcopy(a)
>>> b
[, , ]
>>> c
[, , ]
>>> d
[, , ]
>>> e
[, , ]
>>> f
[, , ]
>>> a = 999
>>> a
[, , ]
>>> b
[, , ]
>>> c
[, , ]
>>> d
[, , ]
>>> e
[, , ]
>>> f
[, , ]

JTYBLCC 发表于 2024-7-18 17:38:32

学完打卡
页: 1 2 [3]
查看完整版本: 第023讲:列表(V)