可变与不可变类型数据,列表的copy方法

Posted niusha

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可变与不可变类型数据,列表的copy方法相关的知识,希望对你有一定的参考价值。

我们先来了解一下可变与不可变类型的数据

(1)可变类型:列表,字典(内存中的数据允许被修改)

不可变类型:数字,字符串,元组(内存中的数据不允许被修改)

接着我们通过一个实例来看一看可变与不可变类型数据之间的区别

下面这个代码,我们看到的结果会是什么呢

技术分享图片

结果是这样的

技术分享图片

很显然a的值肯定是要发生变化的,但是b的值并没有随之改变哦

(2)接着我们来看一下列表的copy方法,copy方法用于复制列表当中的元素

     示例:技术分享图片

当然结果是这样的:技术分享图片

如果我们使用列表当中的方法修改列表当中的一项元素结果会是什么样的呢

技术分享图片

结果是这样的:

技术分享图片

很明显,被复制的对象与复制得到的对象并不互相影响

那么如果一个列表中嵌套了一个列表,结果会是什么样呢

技术分享图片

结果设这样 的:

技术分享图片

也就是说,对于带有嵌套列表的列表,用copy方法会改变复制对象中嵌套列表里的内容,但是对于复制对象大的列表中的内容是不会发生改变的

如果我们不用列表自带的copy方法,而是导入copy模块,结果会有不同吗

技术分享图片

结果是这样 的

技术分享图片

诶,结果似乎是与列表自带的copy方法一样的,好吧,copy模块的copy方法与列表自带的copy方法是一样的,这样 的copy方法其实是浅复制,copy模块当中有一个deepcopy方法,可以完全复制

技术分享图片

结果是这样的

技术分享图片

 

以上是关于可变与不可变类型数据,列表的copy方法的主要内容,如果未能解决你的问题,请参考以下文章

Python基础--可变数据类型与不可变数据类型

Python的可变类型与不可变类型

001_python可变与不可变类型

python的可变类型与不可变类型

数据类型的内置方法 可变类型与不可变类型

可变类型与不可变类型的作用和意义