解决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字符串处理之count()方法的使用
May 18 Python
Python编程实现双击更新所有已安装python模块的方法
Jun 05 Python
浅谈pytorch和Numpy的区别以及相互转换方法
Jul 26 Python
python/sympy求解矩阵方程的方法
Nov 08 Python
python3人脸识别的两种方法
Apr 25 Python
Python 数据可视化pyecharts的使用详解
Jun 26 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
Jul 01 Python
python requests指定出口ip的例子
Jul 25 Python
python+pygame实现坦克大战
Sep 10 Python
django框架cookie和session用法实例详解
Dec 10 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
Jun 17 Python
浅谈Django前端后端值传递问题
Jul 15 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
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
javascript CSS画图之基础篇
2009/07/29 Javascript
JSON 入门指南 想了解json的朋友可以看下
2009/08/26 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
改变隐藏的input中value值的方法
2014/03/19 Javascript
jQuery/CSS3图片特效插件整理推荐
2014/12/07 Javascript
jQueryMobile之Helloworld与页面切换的方法
2015/02/04 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
2015/03/13 Javascript
JavaScript中的this,call,apply使用及区别详解
2016/01/29 Javascript
输入法的回车与消息发送快捷键回车的冲突解决方法
2016/08/09 Javascript
详解Node.js中exports和module.exports的区别
2017/04/19 Javascript
js匿名函数使用&传参(实例)
2017/09/08 Javascript
详解Vue + Vuex 如何使用 vm.$nextTick
2017/11/20 Javascript
electron制作仿制qq聊天界面的示例代码
2018/11/26 Javascript
vue多次循环操作示例
2019/02/08 Javascript
ES6之Proxy的get方法详解
2019/10/11 Javascript
nodejs制作小爬虫功能示例
2020/02/24 NodeJs
JS绘图Flot如何实现动态可刷新曲线图
2020/10/16 Javascript
[55:54]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[53:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第三场 1月18日
2021/03/11 DOTA
python儿童学游戏编程知识点总结
2019/06/03 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
2021/01/29 Python
Python 图片处理库exifread详解
2021/02/25 Python
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
公共汽车、火车和飞机票的通用在线预订和销售平台:INFOBUS
2019/11/30 全球购物
酷瑞网络科技面试题
2012/03/30 面试题
系统管理员的职责包括那些?管理的对象是什么?
2013/01/18 面试题
中文专业毕业生自荐信
2014/05/24 职场文书
授权委托书范本(单位)
2014/09/28 职场文书
学习心理学的体会
2014/11/07 职场文书
技术支持岗位职责
2015/02/13 职场文书
2015年小学数学教研组工作总结
2015/05/21 职场文书
小学教师教学反思
2016/02/24 职场文书
常用的Python代码调试工具总结
2021/06/23 Python
Win11快速关闭所有广告推荐
2022/04/19 数码科技