解决Python使用列表副本的问题


Posted in Python onDecember 19, 2019

要使用一个列表的副本,要用切片进行列表复制,这样会形成两个独立的列表。

切记不要将列表赋值给一个列表,因为这样并不能得到两个列表。

1、使用赋值语法创建列表副本的问题

下边就将列表赋值,验证是否形成独立的列表:

squares = list(range(1, 11))
 
print('squares原始值为:', end='')
print(squares)
 
# 使用列表赋值
numbers_squares = squares
print('numbers_squares所有元素为:', end='')
print(numbers_squares)
 
# 为squares列表添加数字100
squares.append(100)
print('添加数字后的squares值:', end='')
print(squares)
 
# 为squares列表添加数字200
numbers_squares.append(200)
print('添加数字后的number_squares值:', end='')
print(numbers_squares)

输出为:

squares原始值为:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
numbers_squares所有元素为:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
添加数字后的squares值:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100]
添加数字后的number_squares值:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100, 200]

可以看到,number_squares列表值中,也有数字100,说明赋值并没有形成两个独立的列表。赋值只是让Python新变量number_squares关联到包含在squares中的列表,所以这两个列表指向同一个列表。

2、列表副本正确方法:使用切片复制列表副本

下边的列子,创建一个1-10的数字列表,用切片进行列表复制形成两个独立的列表

squares = list(range(1, 11))
 
print('squares原始值为:', end=' ')
print(squares)
 
# 使用切片复制squares列表
numbers_squares = squares[:]
print('numbers_squares所有元素为:', end=' ')
print(numbers_squares)

输出为:

squares原始值为: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
numbers_squares所有元素为: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

为了验证确实形成了两个独立的列表,在每个列表上加数字,核实每个列表都记录了加的数字

squares = list(range(1, 11))
 
print('squares原始值为:', end='')
print(squares)
 
# 使用切片复制squares列表
numbers_squares = squares[:]
print('numbers_squares所有元素为:', end='')
print(numbers_squares)
 
# 为squares列表添加数字100
squares.append(100)
print('添加数字后的squares值:', end='')
print(squares)
 
# 为squares列表添加数字200
numbers_squares.append(200)
print('添加数字后的number_squares值:', end='')
print(numbers_squares)

输出为:

squares原始值为:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
numbers_squares所有元素为:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
添加数字后的squares值:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100]
添加数字后的number_squares值:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 200]

可以看到,确实100和200分别加入到相应列表中。

以上这篇解决Python使用列表副本的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现GUI学生信息管理系统
Apr 05 Python
Python实现通过继承覆盖方法示例
Jul 02 Python
Python使用folium excel绘制point
Jan 03 Python
Python socket模块ftp传输文件过程解析
Nov 05 Python
Python字节单位转换实例
Dec 05 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
Mar 04 Python
python可迭代对象去重实例
May 15 Python
Python操作Elasticsearch处理timeout超时
Jul 17 Python
python基本算法之实现归并排序(Merge sort)
Sep 01 Python
接口自动化多层嵌套json数据处理代码实例
Nov 20 Python
Python: glob匹配文件的操作
Dec 11 Python
Python Flask实现进度条
May 11 Python
python读写Excel表格的实例代码(简单实用)
Dec 19 #Python
python装饰器原理与用法深入详解
Dec 19 #Python
python列表生成器迭代器实例解析
Dec 19 #Python
Python tensorflow实现mnist手写数字识别示例【非卷积与卷积实现】
Dec 19 #Python
Python: 传递列表副本方式
Dec 19 #Python
python内置模块collections知识点总结
Dec 19 #Python
Python操作redis和mongoDB的方法
Dec 19 #Python
You might like
php实现事件监听与触发的方法
2014/11/21 PHP
php实现cookie加密的方法
2015/03/10 PHP
详解YII关联查询
2016/01/10 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
2019/09/30 PHP
JavaScript 密码强度判断代码
2009/09/05 Javascript
避免回车键导致的页面无意义刷新的解决方法
2011/04/12 Javascript
seajs中模块的解析规则详解和模块使用总结
2014/03/12 Javascript
jQuery的观察者模式详解
2014/12/22 Javascript
javascript父子页面通讯实例详解
2015/07/17 Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
2016/05/28 Javascript
谈谈对JavaScript原生拖放的深入理解
2016/09/20 Javascript
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
2016/10/10 Javascript
js获取当前时间(昨天、今天、明天)
2016/11/23 Javascript
node.js 和HTML5开发本地桌面应用程序
2016/12/13 Javascript
Angular.js中定时器循环的3种方法总结
2017/04/27 Javascript
Node.js中sequelize时区的配置方法
2017/12/10 Javascript
js实现指定时间倒计时效果
2019/08/26 Javascript
mpvue微信小程序开发之实现一个弹幕评论
2019/11/24 Javascript
[03:12]完美世界DOTA2联赛PWL DAY7集锦
2020/11/06 DOTA
python使用三角迭代计算圆周率PI的方法
2015/03/20 Python
Python中的ctime()方法使用教程
2015/05/22 Python
python ---lambda匿名函数介绍
2019/03/13 Python
Python实现PyPDF2处理PDF文件的方法示例
2019/09/25 Python
Python高级编程之消息队列(Queue)与进程池(Pool)实例详解
2019/11/01 Python
pytorch torchvision.ImageFolder的用法介绍
2020/02/20 Python
Python基于requests实现模拟上传文件
2020/04/21 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
python自动化测试三部曲之unittest框架的实现
2020/10/07 Python
python中yield的用法详解
2021/01/13 Python
巴西图书和电子产品购物网站:Saraiva
2017/06/07 全球购物
新西兰演唱会和体育门票网站:Ticketmaster新西兰
2017/10/07 全球购物
美国最大的万圣节服装网站:HalloweenCostumes.com
2017/10/12 全球购物
Hibernate持久层技术
2013/12/16 面试题
生物技术专业研究生自荐信
2013/09/22 职场文书
学校领导四风问题整改措施思想汇报
2014/10/09 职场文书
Golang: 内建容器的用法
2021/05/05 Golang