python 复制列表内容_python 复制列表的六种方法
以下是对列表的六种复制方式,总结来说在复制时有三种原理,其中 l1l1l1 是一种,l6l6l6 是第二种,其他的四个方法属于第三种。
import copy
l = [1, 2, [3, 4]]l1 = l
l2 = l.copy()
l3 = l[:]l4 = list(l)
l5 = copy.copy(l)
l6 = copy.deepcopy(l)
我们可以先来打印它们的地址:
print(id(l))
print(id(l1))
print(id(l2))
print(id(l3))
print(id(l4))
print(id(l5))
print(id(l6))
2515754890952
2515754890952
2515754891912
2515754910792
2515754891208
2515754863048
2515754910984
由此可以看出,l1l1l1 的复制原理是将 lll 的地址也一并复制过去了,也就是说,当 lll 发生改变时,l1l1l1 也会改变。但其他的复制方式则不会发生这个问题,比如:
l[0] = 0
print('l: ', l)
print('l1: ', l1)
print('l2: ', l2)
print('l3: ', l3)
print('l4: ', l4)
print('l5: ', l5)
print('l6: ', l6)
得到:
l: [0, 2, [3, 4]]l1: [0, 2, [3, 4]]l2: [1, 2, [3, 4]]l3: [1, 2, [3, 4]]l4: [1, 2, [3, 4]]l5: [1, 2, [3, 4]]l6: [1, 2, [3, 4]]
但是,如果我们针对 lll 内部的子列表做出改变时,只有 l6l6l6 会仍然保持不变,如:
import copy
l = [1, 2, [3, 4]]l1 = l
l2 = l.copy()
l3 = l[:]l4 = list(l)
l5 = copy.copy(l)
l6 = copy.deepcopy(l)
l[2][0] = 0
print('l: ', l)
print('l1: ', l1)
print('l2: ', l2)
print('l3: ', l3)
print('l4: ', l4)
print('l5: ', l5)
print('l6: ', l6)
l: [1, 2, [0, 4]]l1: [1, 2, [0, 4]]l2: [1, 2, [0, 4]]l3: [1, 2, [0, 4]]l4: [1, 2, [0, 4]]l5: [1, 2, [0, 4]]l6: [1, 2, [3, 4]]
所以,总结来说:
l1=ll1 = ll1=l:当 lll 变化时,l1l1l1 也会变化。
l2=l.copy()l2 = l.copy()l2=l.copy()、l3=l[:]l3 = l[:]l3=l[:]、l4=list(l)l4 = list(l)l4=list(l)、l5=copy.copy(l)l5 = copy.copy(l)l5=copy.copy(l):当 lll 中的单个数字发生变化时,l2l2l2、l3l3l3 、l4l4l4 、l5l5l5 都不会改变;当 lll 中的子列表发生变化时,l2l2l2、l3l3l3 、l4l4l4 、l5l5l5 都会改变。
l6=copy.deepcopy(l)l6 = copy.deepcopy(l)l6=copy.deepcopy(l):无论 lll 怎么变化,l6l6l6 都不会变。
作者:cofisher
python 复制列表内容_python 复制列表的六种方法相关推荐
- python 复制列表内容_Python复制列表列表
来自 copy模块的文档: The difference between shallow and deep copying is only relevant for compound objects ...
- python清空列表内容_python 清空列表数据库
Pyhton连接SQL Server数据库解决方案 为了提高工作效率及便利性,拟自主开发一款一键自动化运维小工具:其中主要一项功能用于与SQL Server数据库进行交互,程序可以根据数据库中数据情况 ...
- python删除列表内容_python删除列表内容
今天有点囧 历遍的过程中明显MISS掉了 '**X_gamelog.sql' 这个项目,大家可以自己试试,为什么会没删完,这到底是什么原因呢? 我们再验证一次 看到结果,如果我们不对它进行rem ...
- Python实现将内容写入文件的五种方法总结
本篇带你详细看一下python将内容写入文件的方法以及细节,主要包括write()方法.writelines() 方法.print() 函数.使用 csv 模块.使用 json 模块,需要的可以参考一 ...
- python列表反向_python反向列表
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我正在尝试根据最高值创建某种记分牌. 我添加了reverse = true标志但 ...
- python占位符用元组列表填充_python字符串列表元组序列操作
Table of Contents generated with DocToc python系列-字符串.列表.元组的操作 序列的访问及运算符 序列是为满足程序中复杂的数据表示,python支持组合数 ...
- python 解决最佳方案_python使用列表的最佳方案
python使用列表的最佳方案,列表,方式,方法,函数,表达式 python使用列表的最佳方案 易采站长站,站长之家为您整理了python使用列表的最佳方案的相关内容. 经常写Python程序的人,列 ...
- python两两组合_python – 一个列表中的两个组合列表
我是一个Python初学者.我想从一个列表中获取两个组合列表. 例如,我有一个列表: c = [1, 2, 3, 4] 我想使用每四个项目来获得每个可能的组合来填充两个列表.将会有((2 ^ 4)/ ...
- python返回索引值_python 返回列表中某个值的索引方法
python 返回列表中某个值的索引方法 如下所示: list = [5,6,7,9,1,4,3,2,10] list.index(9) out:3 同时可以返回列表中最大值的索引list.index ...
- python常用关键字意思_Python 关键字列表及示例
本教程提供有关Python中使用的所有关键字的简要信息. 关键字是Python中的保留字.我们不能将关键字用作变量名,函数名或任何其他标识符. 这是Python编程中所有关键字的列表 上述关键字可能会 ...
最新文章
- 在CentOS上安装Java环境—openjdk1.7 解决https配置问题
- Eclipse中写jsp文件时,发现里面加载不了js文件和css文件(解决css文件在eclipse中显示不了)
- navigator.userAgent 取值都带有Mozill的原因。看完我笑了
- 专为linux设计的笔记本,平板变笔记本,Linux 设备也要凑凑热闹
- 如何使用Putty登录安装在VirtualBox里的ubuntu
- linux使用技巧教程,你不知道的 Linux 使用技巧
- Spring Boot 入门 IDEA 版本 2小时学会springBoot 代码上传至gitee 或者github 事务没做出来
- 服务器高并发下出现大量的time wait的解决办法
- raspberry pi_庆祝Raspberry Pi的14天
- webservice发请求没有不成功也不返回什么异常_RPC是什么,看完你就知道了
- 【Python 每天进步一点点】昨天把接口自动化测试框架部署在 测试环境 Linux 上,并且加入持续集成 Jenkins...
- 笔记本如何查看mac地址
- 人工智能 一种现代方法 第9章 一阶逻辑的推理
- IDEA设置字体大小之后没有效果的解决方案
- 阿里巴巴Java开发规范手册(详尽版)——免费下载
- Linux UDP协议栈中的片段分析 - udp_recvmsg
- mysql flush tables_MySQL 清理缓存—flush tablesFlush tables的影响
- java 俄罗斯方块原理,俄罗斯方块设计原理
- matlab里comb用法,comb - 操作字符串的利器
- TortoiseGit设置中没有远端设置问题