码迷,mamicode.com
首页 > 其他好文 > 详细

列表的使用2,深COPY和浅COPY,循环列表,步长切片

时间:2017-08-10 20:58:38      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:结束   数值   现象   简单   src   deepcopy   指针   数字   size   

name2=names.copy()

技术分享

下面我看几种奇怪的现象:

首先把源列表copy以后,把源列表第2个数值修改。那么没毛病。

技术分享

如果源列表里,还包含了一个子列表:这也没毛病

技术分享

如果我们这个时候修改子列表的数值。我们来看一个神奇的现象:

技术分享

 

copy是一种浅COPY,它只会COPY第一层的数据,而不会深入COPY。只会COPY子列表的内存指针,内存地址。

如果你不用COPY的方法,那问题会更严重:

技术分享

结果是这样的,连浅COPY都不如:相当于只把列表的内存地址复制了一下:

技术分享

 

技术分享简单来说就是这种情况。

但是如果是数字或者字符串变量,就不会只把内存地址COPY一下结束,数字或者字符串变量是真正的COPY一份。请注意!

技术分享

如果你想深COPY一份列表,可以用下面的方法:导入COPY模块,但是要注意copy模块也有两种方法,一个浅COPY(跟之前的names.copy()是一个道理),如下图:

技术分享

技术分享

COPY模块还有一个深COPY,deepcopy

技术分享

技术分享

还可以用循环的方法来打印列表的数值:

技术分享

打印奇数的数值:

技术分享

也可以省略0和-1,写成这样:

技术分享

打印全部的数值,也可以这么写:

技术分享

 

列表的使用2,深COPY和浅COPY,循环列表,步长切片

标签:结束   数值   现象   简单   src   deepcopy   指针   数字   size   

原文地址:http://www.cnblogs.com/itfat/p/7341160.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!