如何在python中复制对象

 时间:2024-10-13 16:21:35

python是一门应用非常广的语言,现在也非常流行。今天我们来看看python里对象相关的操作——如何复制对象。

工具/原料

python3

一、引用的方式复制对象

1、在python中,对象的复制按照深浅程度分为3种,依次是引用,浅复制,深复制。我们咸犴孜稍先来介绍对象引用,代码如下面图中所示,这种引用的方式是直接通过赋苒锃巳伢值的形式来实现的,将列表a的值赋值给列表b,此时b就是a的引用。b和a是一样的。

如何在python中复制对象

2、这个时候在列表b里面添加一个值,然后再看a里面的值,可以看到a里面也被添加了一个新值。

如何在python中复制对象

3、我们清空a里面的值时,可以发现,列表b里面的值也被清空了。如下面图中所示。这就是引用的特性,总结如下:1.使用引用时,复制的对象和被复制的对象完全相同2.修改复制的对象和被复制的对象时,两个都会同时被改变。

如何在python中复制对象

二、浅复制来复制对象

1、浅复制有两种形式,一种是使用对象的copy函数,另外一种使用的是python擢爻充种的copy模块自带的copy函剞麽苍足数。我们先看第一种,直接使用对象自带的copy函数,如下面图中所示,可以看到,对象自带的copy函数复制的对象和被复制的对象不是同一个。

如何在python中复制对象

2、然后我们来清除a里面的值,如下面图中所示,可以看到a里面的值清除时,b里面的值没有任何改变。

如何在python中复制对象

3、当我们在b里面添加一个值的时候,可以发现,a里也没有任何变化。如下面图中所示。从图中看,看起来a和b是两个各自独立的对象,但是实际上还有区别。

如何在python中复制对象

4、下面我们来看,如下图中所莲镘拎扇示,此时的列表a里面多了一个子列表['x','y'],然后使用自带的copy函数来复制。然后给魔嗾姒缚子列表中添加一个值,然后再查看b中的值。可以看到b中的子列表也添加了一个值。说明a和b不是完全独立的两个对象,这也是为什么称为浅复制的原因。

如何在python中复制对象

5、下面我们来看python的copy模块自带的copy函数。如下面图中所示,可以看到copy模块的copy函数和列表自带的copy函数表现是一致的。

如何在python中复制对象

如何在python中复制对象

6、再试一下子列表的添加,如下面图中所示,可以看到子列表的添加也是和列表自带的copy函数一模一样,也是属于浅复制。

如何在python中复制对象

三、深度复制

1、最后我们来看一下深度复制的方式来复制对象,深度复制使用的是copy模块的deepcopy函数。如下所示,可以看到,如果对象只是单纯的列表,复制出来的对象是完全隔离的。

如何在python中复制对象

2、我们再来看看,带有子列表的对象,如下面图中所示,当列表a里面具有子列表,使用deepcopy函数复制出来的对象c,往对象a的子列表里添加值以后,对象c仍然不变,说明这个时候对象a和对象c是完全不同的两个对象。这就是深度复制。

如何在python中复制对象

预防冠心病从青少年做起! C语言中用数组解约瑟夫问题 关羽出爆裂之甲还是反伤刺甲好? 新型冠状病毒疫情相关的各类别搜索关键词排行榜 什么是成功 怎样才能成功
热门搜索
宝骏560图片 鸡子图片 天宝伏妖录动漫免费观看全集 希尔薇忍耐的极限图片 邪恶少女动漫