解决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内置的字符串处理函数详细整理(覆盖日常所用)
Aug 19 Python
Python中列表的一些基本操作知识汇总
May 20 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
Dec 02 Python
自学python的建议和周期预算
Jan 30 Python
pycharm配置pyqt5-tools开发环境的方法步骤
Feb 11 Python
Python3.6实现带有简单界面的有道翻译小程序
Apr 16 Python
python之生产者消费者模型实现详解
Jul 27 Python
使用浏览器访问python写的服务器程序
Oct 10 Python
Python类反射机制使用实例解析
Dec 30 Python
Matplotlib自定义坐标轴刻度的实现示例
Jun 18 Python
Python爬虫爬取微信朋友圈
Aug 06 Python
matplotlib grid()设置网格线外观的实现
Feb 22 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 表单验证实现代码
2009/03/10 PHP
php $_SERVER["REQUEST_URI"]获取值的通用解决方法
2010/06/21 PHP
linux下为php添加iconv模块的方法
2016/02/28 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
2017/06/17 PHP
document.getElementById介绍
2011/09/13 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
Javascript Web Slider 焦点图示例源码
2013/10/10 Javascript
Knockout visible绑定使用方法
2013/11/15 Javascript
jquery iframe操作详细解析
2013/11/20 Javascript
jquery图形密码实现方法
2015/03/11 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
jQuery轻松实现表格的隔行变色和点击行变色的实例代码
2016/05/09 Javascript
在DWR中实现直接获取一个JAVA类的返回值的两种方法
2016/12/25 Javascript
vue.js与element-ui实现菜单树形结构的解决方法
2018/04/21 Javascript
JavaScript常用工具方法封装
2019/02/12 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
2019/05/04 jQuery
JS中数据结构与算法---排序算法(Sort Algorithm)实例详解
2019/06/17 Javascript
element-ui 实现响应式导航栏的示例代码
2020/05/08 Javascript
[19:59]2014DOTA2国际邀请赛 IG战队纪录片
2014/08/07 DOTA
Python脚本实现代码行数统计代码分享
2015/03/10 Python
python实现class对象转换成json/字典的方法
2016/03/11 Python
python中Matplotlib实现绘制3D图的示例代码
2017/09/04 Python
解决pip install xxx报错SyntaxError: invalid syntax的问题
2018/11/30 Python
使用Python 正则匹配两个特定字符之间的字符方法
2018/12/24 Python
python集合是否可变总结
2019/06/20 Python
python Django中models进行模糊查询的示例
2019/07/18 Python
Python tornado上传文件的功能
2020/03/26 Python
Pycharm激活方法及详细教程(详细且实用)
2020/05/12 Python
Python pandas对excel的操作实现示例
2020/07/21 Python
详解CSS3 Media Queries中媒体属性的使用
2016/02/29 HTML / CSS
HTML5视频播放插件 video.js介绍
2018/09/29 HTML / CSS
好书伴我成长演讲稿
2014/05/14 职场文书
珍惜资源保护环境的建议书
2014/05/14 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书
一篇文章带你深入了解Mysql触发器
2021/08/02 MySQL
JS实现数组去重的11种方法总结
2022/04/04 Javascript