这两题涉及两个概念:赋值过程中的浅复制 VS. 深复制

修改自身的操作 VS. 返回新值的操作

x 是个列表,用Python的话说,属于引用类型,它本身是一个指向底层数据结构的引用,赋值给 y 时,传递的是这个引用,因此,y 和 x 等于共享了底层数据结构。我们把这种情况叫浅复制。

比如说,我们改一下 y 的值,x 的值也会受影响。y[0]=2

x

[2,2]

与之对应的是深复制,对于Python中的值类型,比如数值、字符串等,赋值的时候会直接复制一份底层数据,互相之间就不会受影响了。x=1

y=x

y=2

y

2

x

1

除了赋值过程,深复制与浅复制更需要注意的是函数传参的过程。传递一个引用对象作为参数,有可能会在函数运算时改变原对象状态,导致一些不好排查的bug。想要更详细的了解,可以搜索相关关键词。

第二个概念是修改自身的操作与返回新对象的操作。

同样是扩展列表,这两题结果不一样,是因为 += 号是修改自身的操作,这个操作等于是在 y 后面新增了两个元素,上面说过,x 和 y 在底层结构上是同一个,因此 x 就受影响了。

而另一题中,y=y+[3,4] 其实可以看成两步,第一步是相加,得到一个新的列表 [1,2,3,4] ,第二步是把这个新列表赋值给 y,这个赋值过程,实际上是让 y 指向了一个新的底层数据结构,和 x 指向的那个就区分开来了。

当然,需要指出的是,+= 其实也不是原子性的操作,不过这和这两题没什么关系,属于比较深入的内容,暂时可以不用关注。

搜索资料的问题,第一步是打开搜索引擎,第二步是输入关键词。了解一些基本概念之后,就知道该输入什么关键词了,不用着急。

怎么了解一些基本概念呢?还是推荐看一两本比较经典的书,所谓磨刀不误砍柴工。怎么知道哪些书比较经典呢?参考上一段,这里就不推荐了。

祝顺利!

python怎么查看列表_Python 小白,关于对于列表的+=操作不明白,查了半天也不知道怎么查,并且查询无果,请人指点?...相关推荐

  1. python字典经典例题_Python小白--------基础练习题(列表,元组,字典)

    Python小白--------基础练习题(列表,元组,字典) 发布时间:2018-05-16 18:12, 浏览次数:1167 , 标签: Python 今天总结了这几天所学的基础知识,做了一些练习 ...

  2. python数据结构的列表_Python自带数据结构 列表(list)

    Python自带数据结构 列表(list) 列表是Python中最通用的数据类型,可以写成方括号之间的逗号分隔值(项目)列表. 使用列表的重要事项是,列表中的项目不必是相同的类型.也就是说一个列表中的 ...

  3. [转载] python字符串数组字典_Python:字符串、列表、元组、字典

    参考链接: Python字符串| ascii_uppercase 字符串: 所有方法都修改不了字符串的值,字符串还是原值:但可以重新赋值:使用字符串方法有返回值 循环字符串的用法: 字符串方法: Na ...

  4. python的编码表_Python算法之旅列表的纷争之二进制编码

    列表的纷争之二进制编码 小美:最近数学老师给我们玩了有趣的猜年龄游戏,他显示了6张表格,你只要观察这6张表格,然后回答"是"与"不是"就可以了.老师可以根据你的 ...

  5. python字典转换为列表_Python中将字典转换为列表的方法

    说明:列表不可以转换为字典 ①转换后的列表为无序列表 a = {'a' : 1, 'b': 2, 'c' : 3} #字典中的key转换为列表 key_value = list(a.keys()) p ...

  6. python如何创建一个列表_python怎样快速构建列表?

    来自"专业人士笔记":创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!​zhuanlan.zhihu.com Python列表是Python程序中广泛使用的一种 ...

  7. python两个乘号_Python小白入门:第一讲||变量和简单数据类型

    在第一讲中,你将学习: 如何使用变量: 如何创建描述性变量名以及如何消除名称错误和语法错误: 字符串是什么,以及如何使用小写.大写和首字母大写方式显示字符串: 使用空白来显示整洁的输出,以及如何剔除字 ...

  8. python mysql工具类_Python工具类(一)—— 操作Mysql数据库

    如何调用直接看__main__函数里如何调用此工具类就阔以啦! # encoding=utf-8 import pymysql # 导入所有Mysql配置常量,请自行指定文件 from conf.se ...

  9. python和循环语句_Python 小白零基础入门 -- 条件语句和循环语句

    Python 小白零基础入门 -- 条件语句和循环语句 点击上方 "Python 读数", 选择 "星标" 公众号 重磅干货, 第一时间送达 Python 零基 ...

最新文章

  1. 关于在WebForm页面使用Ajax
  2. python修改linux网卡信息,linux下修改网卡接口名称
  3. 大象狂奔,地表最强大的投行高盛摩根转型
  4. 【Python】吊打pyecharts,又一超级棒的开源可视化库
  5. win10微软图标点击无反应_win10开始菜单,不出来,任务栏右击无反应
  6. input和textarea的区别
  7. python正则表达式匹配字母和下划线_个英文字母、下划线或汉字的正则表达式
  8. 【题解】CF#960 H-Santa's Gift
  9. Spark内核解析之四:Spark 任务调度机制
  10. (3)数据结构-线性表链式存储
  11. Unity zSpace 开发
  12. 在线合成车牌照片【模拟车牌,用于车牌识别项目测试】
  13. android框架揭秘!连续四年百度Android岗必问面试题!实战篇
  14. bootstrap 检验 法 原理_三种中介效应检验方法及操作步骤
  15. django静态页面
  16. 超简单! 一个标签搞定跑马灯,纯css制作跑马灯效果
  17. markdown无法显示图片的问题
  18. ro素质点模拟器_仙境传说RO:最具人气职业猎人成长攻略手册
  19. [JLOI2014]松鼠的新家 洛谷P3258
  20. oracle11g ora 00904,【排故篇_oracle11g升19c之ORA-00904 WM_CONCAT invalid identifie排故

热门文章

  1. python按位右移的作用_python入门之左移,右移,按位与,按位或,按位异或,按位取反...
  2. python什么时候用类方法_小白提问:python 在什么时候用函数,什么时候用类?...
  3. SQL Server 创建存储过程
  4. 基于 abp vNext 和 .NET Core 开发博客项目 - 数据访问和代码优先
  5. linux服务器静态ip,Ubuntu Linux系统下设置静态IP的方法
  6. java中map集合的修改_map集合修改其中元素(示例代码)
  7. Coding:从给定数字集中找到最大的数字
  8. Ubuntu 安装简单samba
  9. 接连三次霸榜GitHub,这个国产GitHub项目是真的强...
  10. java 一元一次方程求解_七年级一元一次方程概念和解法,掌握这些就够了!