解决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中的变量、引用、拷贝和作用域的问题
Apr 07 Python
python使用xmlrpclib模块实现对百度google的ping功能
Jun 02 Python
对Python强大的可变参数传递机制详解
Jun 13 Python
Python实现EXCEL表格的排序功能示例
Jun 25 Python
python画图——实现在图上标注上具体数值的方法
Jul 08 Python
python 多进程队列数据处理详解
Dec 23 Python
Python中zip()函数的解释和可视化(实例详解)
Feb 16 Python
详解python环境安装selenium和手动下载安装selenium的方法
Mar 17 Python
Pygame的程序开始示例代码
May 07 Python
Python paramiko使用方法代码汇总
Nov 20 Python
Python控制台输出俄罗斯方块的方法实例
Apr 17 Python
pytorch 如何使用amp进行混合精度训练
May 24 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
APMServ使用说明
2006/10/23 PHP
PHP安全配置
2006/12/06 PHP
在PHP中养成7个面向对象的好习惯
2010/01/28 PHP
destoon复制新模块的方法
2014/06/21 PHP
iis 7下安装laravel 5.4环境的方法教程
2017/06/14 PHP
匹配任意字符的正则表达式写法
2010/04/29 Javascript
Confirmer JQuery确认对话框组件
2010/06/09 Javascript
ajax 同步请求和异步请求的差异分析
2011/07/04 Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
2012/12/28 Javascript
jquery实现table鼠标经过变色代码
2013/09/25 Javascript
JavaScript的事件绑定(方便不支持js的时候)
2013/10/01 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
JavaScript制作windows经典扫雷小游戏
2015/03/31 Javascript
谈谈JavaScript中function多重理解
2015/08/28 Javascript
前端性能优化及技巧
2016/05/06 Javascript
javascript闭包概念简单解析(推荐)
2016/06/03 Javascript
AngularJS使用ng-options指令实现下拉框
2016/08/23 Javascript
微信小程序定位当前城市的方法
2018/07/19 Javascript
从源码里了解vue中的nextTick的使用
2018/11/22 Javascript
vue created钩子函数与mounted钩子函数的用法区别
2020/11/05 Javascript
Python文本相似性计算之编辑距离详解
2016/11/28 Python
python实现串口自动触发工作的示例
2019/07/02 Python
解决python运行启动报错问题
2020/06/01 Python
python如何处理程序无法打开
2020/06/16 Python
军训自我鉴定怎么写
2014/02/13 职场文书
大宝sod蜜广告词
2014/03/21 职场文书
禁烟标语大全
2014/06/11 职场文书
巾帼志愿者活动方案
2014/08/17 职场文书
股东出资证明书(正规版)
2014/09/24 职场文书
写给老师的感谢信
2015/01/20 职场文书
党校个人总结
2015/03/04 职场文书
结婚纪念日感言
2015/08/01 职场文书
大学生党课感想
2015/08/11 职场文书
jquery插件实现悬浮的菜单
2021/04/24 jQuery
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript
pd.drop_duplicates删除重复行的方法实现
2022/06/16 Python