P01-Python中列表的复制问题
(1)使用=直接赋值
a = [1, 2, 3, [6, 7]]
b = a
初始情况:
a: [1, 2, 3, [6, 7]]
b: [1, 2, 3, [6, 7]]
------------------
修改a[1] = 5之后的情况
a: [1, 5, 3, [6, 7]]
b: [1, 5, 3, [6, 7]]
------------------
修改b[2] = 8之后的情况
a: [1, 5, 8, [6, 7]]
b: [1, 5, 8, [6, 7]]
------------------
修改a[3][0] = 10之后的情况
a: [1, 5, 8, [10, 7]]
b: [1, 5, 8, [10, 7]]
------------------
修改b[3][0] = 20之后的情况
a: [1, 5, 8, [20, 7]]
b: [1, 5, 8, [20, 7]]
------------------
此时我理解中的内存图如下所示(0x0012xx表示内存地址):
即:使用=直接赋值,是引用赋值,更改任何其中一个,另一个都会改变。可以理解为:将列表a的指针赋值给b,此时a,b共用一个内存空间。
(2)使用b = a[:]或者b = a.copy()或者b = list(a)或者b = [i for i in a]或者copy模块的b = copy.copy(a)方法复制的情况
a = [1, 2, 3, [6, 7]]
b = a.copy() #或b = a[:]或b = list(a)或b = [i for i in a]或b = copy.copy(a)
初始情况:
a: [1, 2, 3, [6, 7]]
b: [1, 2, 3, [6, 7]]
------------------
修改a[1] = 5之后的情况
a: [1, 5, 3, [6, 7]]
b: [1, 2, 3, [6, 7]]
------------------
修改b[2] = 8之后的情况
a: [1, 5, 3, [6, 7]]
b: [1, 2, 8, [6, 7]]
------------------
修改a[3][0] = 10之后的情况
a: [1, 5, 3, [10, 7]]
b: [1, 2, 8, [10, 7]]
------------------
修改b[3][0] = 20之后的情况
a: [1, 5, 3, [20, 7]]
b: [1, 2, 8, [20, 7]]
------------------
此时我理解中的内存图示这样的(0x0012xx表示内存地址):
(3)使用copy模块的deepcopy方法复制
import copy
a = [1, 2, 3, [6, 7]]
b = copy.deepcopy(a)
初始情况:
a: [1, 2, 3, [6, 7]]
b: [1, 2, 3, [6, 7]]
------------------
修改a[1] = 5之后的情况
a: [1, 5, 3, [6, 7]]
b: [1, 2, 3, [6, 7]]
------------------
修改b[2] = 8之后的情况
a: [1, 5, 3, [6, 7]]
b: [1, 2, 8, [6, 7]]
------------------
修改a[3][0] = 10之后的情况
a: [1, 5, 3, [10, 7]]
b: [1, 2, 8, [6, 7]]
------------------
修改b[3][0] = 20之后的情况
a: [1, 5, 3, [10, 7]]
b: [1, 2, 8, [20, 7]]
------------------
此时我理解中的内存图示如下(0x0012xx以及0x0024xx表示内存地址):
P01-Python中列表的复制问题的更多相关文章
- 对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
引用:https://www.jb51.net/article/142775.htm 列表赋值: 1 2 3 4 5 6 7 >>> a = [1, 2, 3] >>&g ...
- python中列表和元组以及字符串的操作
python中列表是非常好用的.不过有一些使用小细节还需要注意一下. tag[32:-4] 从index为32到tag的倒数第4个字符. 如果索引为32的值在倒数第4个字符的右边,那么将输出为空.只要 ...
- python中文件的复制
python中文件的复制 python的os模块有很多文件目录相关的函数,但没有提供直接复制文件的函数,当然可以通过边都边写的方式复制文件.想要直接复制文件可以通过shutil模块 shutil模块是 ...
- Python中列表,元组,字典,集合的区别
参考文档https://blog.csdn.net/Yeoman92/article/details/56289287 理解Python中列表,元组,字典,集合的区别 列表,元组,字典,集合的区别是p ...
- python中列表元素连接方法join用法实例
python中列表元素连接方法join用法实例 这篇文章主要介绍了python中列表元素连接方法join用法,实例分析了Python中join方法的使用技巧,非常具有实用价值,分享给大家供大家参考. ...
- python中列表和元组的操作(结尾格式化输出小福利)
一. 列表 1. 查 names = "YanFeixu WuYifan" names_1 = ["YanFeixu"," WuYifan" ...
- Python中列表的各种方法
列表是Python中一种常用的存储信息的方式,所以要熟练掌握列表的各种方法: 首先我们定义一个列表(name),然后练习里面的各种方法: >>> name = ["Sora ...
- Python中list的复制及深拷贝与浅拷贝探究
在Python中,经常要对一个list进行复制.对于复制,自然的就有深拷贝与浅拷贝问题.深拷贝与浅拷贝的区别在于,当从原本的list复制出新的list之后,修改其中的任意一个是否会对另一个造成影响,即 ...
- Python中列表操作进阶及元组
列表高级操作 一.遍历列表 >>> ls=['a','d','it'] >>> for val in ls: ... print (val) ... a d it ...
- Python中列表的使用
python中的列表与java中的数组非常类似,但使用方法比java中数组简单很多,python中的数据类型不需要显示声明,但在使用时必须赋值,列表元素下标从0开始 初始化列表(初始化一个包含五个元素 ...
随机推荐
- 架构之路:nginx与IIS服务器搭建集群实现负载均衡
http://blog.csdn.net/zhanghan18333611647/article/details/50811980
- loadrunner录制时web时,ie报安全证书问题
解决方法:在Recording_Options下Port Mapping>Capture level设置为 WinNet level data Capture Level的设置说明:1.Sock ...
- 使用python进行汉语分词-乾颐堂
目前我常常使用的分词有结巴分词.NLPIR分词等等 最近是在使用结巴分词,稍微做一下推荐,还是蛮好用的. 一.结巴分词简介 利用结巴分词进行中文分词,基本实现原理有三: 基于Trie树结构实现高效的词 ...
- linux centOS下怎么配置web服务器
| 浏览:4503 | 更新:2011-12-07 17:45 1 2 3 分步阅读 下是我在配置web服务时作的一些记录,高手飘开或者看了指点一下,不胜感激,第一次配置,很多细节需要自己优化.适合环 ...
- nignx ssl 配置
1. 找一个目录,例如: usr/local/nginx/ssl ,进入该目录 2. openssl genrsa -des3 -out server.key 1024 创建自身秘钥 3. op ...
- SSH 密钥登录 SecureCRT
https://www.qcloud.com/doc/product/213/2036 1.3. 使用SecureCRT登录 1.3.1. 复制公钥 登录腾讯云控制台,点击[云服务器]-[SSH密钥] ...
- 淘宝IP地址库
淘宝官方ip地址库 http://ip.taobao.com/ 接口说明 1. 请求接口(GET): http://ip.taobao.com/service/getIpInfo.php?ip=[ip ...
- getTextContent()方法会出现The method getTextContent() is undefined for the type Node 提示
eclipse 中 如果加入了 其他了xfire 等其他xml解析包的话,使用org.w3c.dom.Node下的getTextContent()方法会出现The method getTextCont ...
- [转载].NET Web开发技术(补充)
大家在工作应该养成善于总结的习惯,总结你所学习.使用的技术,总结你所工作事项的比较好的地方,善于总结不断的沉淀优化自己.适时停下来总结下过去走过的路,才能让我们的未来走的更坚定.文章转自JamesLi ...
- 爬虫--使用scrapy爬取糗事百科并在txt文件中持久化存储
工程目录结构 spiders下的first源码 # -*- coding: utf- -*- import scrapy from firstBlood.items import Firstblood ...