解决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 22 Python
Python 创建子进程模块subprocess详解
Apr 08 Python
编写Python的web框架中的Model的教程
Apr 29 Python
python使用str & repr转换字符串
Oct 13 Python
Python3一行代码实现图片文字识别的示例
Jan 15 Python
在Windows中设置Python环境变量的实例讲解
Apr 28 Python
对python中使用requests模块参数编码的不同处理方法
May 18 Python
通过Python模块filecmp 对文件比较的实现方法
Jun 29 Python
使用python生成杨辉三角形的示例代码
Aug 29 Python
使用Python刷淘宝喵币(低阶入门版)
Oct 30 Python
python redis存入字典序列化存储教程
Jul 16 Python
用python对excel进行操作(读,写,修改)
Dec 25 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下使用SMTP发邮件的代码
2008/01/10 PHP
Django 中 cookie的使用
2017/08/17 PHP
PHP7数组的底层实现示例
2019/08/25 PHP
jquery实现仿JqueryUi可拖动的DIV实例
2015/07/31 Javascript
jquery仿百度百科底部浮动导航特效
2015/08/08 Javascript
深入理解angularjs过滤器
2016/05/25 Javascript
javascript连接mysql与php通过odbc连接任意数据库的实例
2017/12/27 Javascript
angularjs $http调用接口的方式详解
2018/08/13 Javascript
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
使用gulp构建前端自动化的方法示例
2018/12/25 Javascript
微信小程序实现左右列表联动
2020/05/19 Javascript
微信小程序实现录音功能
2019/11/22 Javascript
[43:58]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第二局
2016/02/27 DOTA
python检测lvs real server状态
2014/01/22 Python
Python中的多重装饰器
2015/04/11 Python
在Python中使用正则表达式的方法
2015/08/13 Python
使用Django Form解决表单数据无法动态刷新的两种方法
2017/07/14 Python
pycharm配置pyqt5-tools开发环境的方法步骤
2019/02/11 Python
Python如何实现转换URL详解
2019/07/02 Python
Python爬虫运用正则表达式的方法和优缺点
2019/08/25 Python
解决Django Haystack全文检索为空的问题
2020/05/19 Python
法国和欧洲海边和滑雪度假:Pierre & Vacances
2017/01/04 全球购物
一些高难度的SQL面试题
2016/11/29 面试题
上海雨人软件技术开发有限公司测试题
2015/07/14 面试题
介绍一下except的用法和作用
2015/01/22 面试题
高中毕业生个人自我鉴定
2013/11/24 职场文书
职业技术学校毕业生推荐信
2013/12/03 职场文书
晚宴邀请函范文
2014/01/15 职场文书
春节活动策划方案
2014/01/24 职场文书
公司保洁员岗位职责
2015/02/13 职场文书
个人简历自我评价怎么写
2015/03/10 职场文书
python自动化调用百度api解决验证码
2021/04/13 Python
Java 在生活中的 10 大应用
2021/11/02 Java/Android
Python实现文字pdf转换图片pdf效果
2022/04/03 Python
科学家测试在太空中培育人造肉,用于未来太空旅行
2022/04/29 数码科技
Python  序列化反序列化和异常处理的问题小结
2022/12/24 Python