带你自学Python系列(七):Python列表复制陷阱
↑ 点击上方【计算机视觉联盟】关注我们
今天是小编持续更新关于Python的知识总结以及Python实践项目应用的第7天,带你利用零碎时间自学最受欢迎的编程语言之一Python语言。你和小编一起打卡了吗?
如果要使用列表的副本,我们肯定想着直接将列表“赋值”给另一个列表不就完事了,这有什么难的?事实是,它还就不是简单的“赋值”就可以。
下边我们就来看将列表赋值为另一个列表存在的问题:
1squares = list(range(1, 11))23print('squares原始值为:', end='')4print(squares)56# 使用列表赋值7numbers_squares = squares8print('numbers_squares所有元素为:', end='')9print(numbers_squares)
10
11# 为squares列表添加数字100
12squares.append(100)
13print('添加数字后的squares值:', end='')
14print(squares)
15
16# 为number_squares列表添加数字200
17numbers_squares.append(200)
18print('添加数字后的number_squares值:', end='')
19print(numbers_squares)
输出结果为:
可以看到,number_squares列表值中,也有数字100,说明赋值并没有形成两个独立的列表。
赋值只是让Python新变量number_squares关联到包含在squares中的列表,所以这两个列表指向同一个列表。
看到上述结果,你是不是觉得有点惊讶?是不是在疑问那该怎么办呢?其实很简单,我们可以使用切片的方式来实现列表副本的复制,这样才会真正的形形成两个独立的列表。
!!!列表副本正确方法:使用切片复制列表副本
同样是上述例子,这里使用切片进行列表副本复制,查看是否形成独立列表:
1squares = list(range(1, 11))23print('squares原始值为:', end='')4print(squares)56# 使用切片复制squares列表7numbers_squares = squares[:]8print('numbers_squares所有元素为:', end='')9print(numbers_squares)
10
11# 为squares列表添加数字100
12squares.append(100)
13print('添加数字后的squares值:', end='')
14print(squares)
15
16# 为number_squares列表添加数字200
17numbers_squares.append(200)
18print('添加数字后的number_squares值:', end='')
19print(numbers_squares)
输出结果为:
可以看到,确实100和200分别加入到相应列表中
总结:
要使用一个列表的副本,用切片进行复制,这样才会形成两个独立的列表
切记不要将列表赋值给一个列表,因为这样并不能得到两个列表。
往期回顾
● 带你详细了解机器视觉竞赛—ILSVRC竞赛
● 到底什么是“机器学习”?机器学习有哪些基本概念?(简单易懂)
● 带你自学Python系列(一):变量和简单数据类型(附思维导图)
● 带你自学Python系列(二):Python列表总结-思维导图
● 2018年度最强的30个机器学习项目!
● 斯坦福李飞飞高徒Johnson博士论文: 组成式计算机视觉智能(附195页PDF)
● 一文详解计算机视觉的广泛应用:网络压缩、视觉问答、可视化、风格迁移
带你自学Python系列(七):Python列表复制陷阱相关推荐
- csdn最新最牛最细python系列【python高阶:自动化相关技能】 python全栈自动化测试系类4-4
目录 [python之smtplib模块发送邮件] 1.tls模式加密 2.ssl加密,默认加密端口是465 MIMEApplication模块添加附件: [python编程之ini文件处理-conf ...
- 青少年python系列 2.Python简介
青少年python系列目录_老程序员115的博客-CSDN博客 青少年python教学视频ppt源码 Python来源 Python的创始人为Guido van Rossum.1989年圣诞节期间, ...
- python系列之---python的起源
根据TIOBE发布的2018年5月编程语言排行,可以看到python作为现在十分火热的语言,一直都是保持在前列. 5 月编程语言排行榜 TOP20 榜单: Top 10编程语言TIOBE指数走势(20 ...
- 青少年python系列 33.python安装非内置模块
青少年python教学视频ppt源码 青少年python系列目录_老程序员115的博客-CSDN博客 简介 python内置模及其内部的功能函数,是无法满足我们编程需求的.这时候如果有能够满足我们需要 ...
- python系列-认识python
1.python是怎么出现的 2.python的发展 3.Python的用途 目前python语言可谓炙手可热,开发,测试.运维还有人工智能.数据分析等板块都是他们的影子. python是什么?pyt ...
- python系列教程-python前世今生以及windows下环境的安装
文章目录 一.python的前世今生 1.1 Python的起源 二.为什么要学习python 2.1.从语言排行榜上看 三.python的安装 3.1 python下载 3.2 自定义安装路径,以及 ...
- Python系列(七):用栗子带你深入了解生成器的send()方法
一.问题引入 在Python中,可以使用生成器来一次返回单个元素,从而可以避免大量占用内存.下面例子中计算房价函数house_price便是一个生成器的栗子,该函数接收两个参数,其中unit_pric ...
- python第七关再来一盘_7、 Python系列,七,的,集合
集合 1.什么是集合 我们可以把集合看作是没有存储value的字典,也就是说可以把集合看作是只有key的字典. 我们知道字典中的key它必须是不可变的类型,因为我们要根据key调用哈希函数hash() ...
- [每日一讲] Python系列:Python概述
Python 序章 概述 Python 是弱类型动态解释型的面向对象高级语言,其具备面向对象的三大特点:封装.继承.多态.Python 代码运行时,其有一个编译过程,通过编译器生成 .pyc 字节码 ...
最新文章
- linux ls命令全称,Linux ls命令的使用
- Redis中的zset 有序集合
- python flask源码解析_浅谈flask源码之请求过程
- 《Hadoop实战》的笔记-2、Hadoop输入与输出
- .net 读取mysql数据库配置文件_.NETCore添加及读取默认配置文件信息
- MongoDB 计划从“Data Sprawl”中逃脱
- 移动端拖拽排序 html,移动端拖拽排序
- kafka----zookepeer
- SpringBoot项目瘦身指南,大厂如何面试看出你的水平
- ++++++++++++++++++++++++++++++++++++++++++++1076+++++++++++++++++++++++++++++++++++++++++++++++++++
- python入门教程pdf-《python基础教程(第3版)》高清版PDF免费下载
- cognos安装和配置即席报表流程
- 武汉大学计算机学院c语言试题,武汉大学计算机学院C语言历年试题(48页)-原创力文档...
- 一天入门Tableau详细教程(上)
- beescms网站渗透测试和修复意见
- oracle erp atp是什么意思,三种ATP(ERP原理与应用教程第2版)
- 毕业设计c语言课程设计,毕业设计—c语言—课程设计.doc
- 常见哈希算法、Hmac算法和BouncyCastle
- 小程序 横向 纵向排列
- time(),date(),microtime()三者的区别
热门文章
- android不能在主线程,android.os.NetworkOnMainThreadException 在4.0之后谷歌强制要求连接网络不能在主线程进行访问(示例代码)...
- python输入数组_python怎么输入数组
- linux重定向到程序,技术|Linux I/O 重定向基础
- 兴图视频指挥系统如何配置服务器,兴图新科指挥调度终端
- word打开wps文件乱码_word文档打开是乱码解决方法
- java数据库的量级_程序员学Python还是Java?分析了8张图后得出这个结论
- 小学音乐教学和计算机的融合,小学学科教学与计算机深度融合赛课心得体会(共4篇)...
- java 对象结构_java对象的结构
- shuffle洗牌算法java_js打乱一个数组 的 洗牌(shuffle )算法
- 创建对象的其中两种方法的比较