对于列表这样的可变类型来说,对它操作是不会改变内存地址的.

若列表里面存的元素是整数这样的不可变类型,若修改这个元素那地址还是会改变,如:

>>> a = [1,2,3]
>>> b = []#建立两个列表,把 a 的第一个元素也就是 1 加到 b列表里面>>> b.append(a[0])>>> a
[1, 2, 3]>>> b
[1]

这个时候改变 a 列表第一个元素的值:

>>> a[0] = 0>>> a
[0, 2, 3]>>> b
[1]

可以看出,b没有受任何影响,因为元素类型是不可变类型(整数)

但是如果元素类型是可变类型,如列表:

>>> a[0] = [0,0,0]
>>> b.append(a[0]) #把a[0] 里面这个列表元素加入b列表里面>>> a
[[0, 0, 0], 2, 3]>>> b
[1, [0, 0, 0]]

现在如果改变a列表的第一个列表元素,如用append添加一个值:

>>> a[0].append('ha')>>> b
[1, [0, 0, 0, 'ha']]
>>> a[[0, 0, 0, 'ha'], 2, 3]

总结:对于嵌套的可变类型,如果另一个变量用了引用的方式添加,那同样是相同的内存地址,修改一个依然会影响另一个.

转载于:https://www.cnblogs.com/cccy0/p/9017434.html

Python__关于列表的引用 以append操作为例相关推荐

  1. python list的extend (会将被插入的列表的每个元素从列表中拿出添加到列表中)与append方法(若被插入为列表,会将列表插入到源列表中)区别

    python list的extend (会将被插入的列表的每个元素从列表中拿出添加到列表中)与append方法(若被插入为列表,会将列表插入到源列表中)区别 Python--list的extend() ...

  2. Emacs之魂(三):列表,引用和求值策略

    Emacs之魂(一):开篇 Emacs之魂(二):一分钟学会人界用法 Emacs之魂(三):列表,引用和求值策略 Emacs之魂(四):标识符,符号和变量 Emacs之魂(五):变量的"指针 ...

  3. python观察日志(part20)--列表中加号,extend,append之间的区别

    学习笔记,仅供参考,有错必纠 列表中"+"加号,extend,append之间的区别 extend extend函数用于在列表末尾一次性追加另一个序列中的多个值. append a ...

  4. MarkDown语法详解:标题、字体、列表、引用、图片、表格、代码、超链接、公式

    文章目录 什么是Markdown? 学习准备 常用语法 标题(二级标题): 三级标题 四级标题 字体 显示效果: 文字设置 分割线 列表 有序列表 无序列表 列表嵌套 引用 单句引用 区块引用嵌套 区 ...

  5. word的自定义编号+自定义多级列表+交叉引用

                       word的自定义编号+自定义多级列表+交叉引用 之前一直用letax排版觉得letax的参考文献能够自动的进行更新实在是很方便,不用因为增加一个或者减少一个文献而 ...

  6. Png文件可横向拉伸html布局,png透明格式 以cad2010操作为例:

    手机怎么做png透明图片? BMP格式保存为ARGB8888格式.由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式 ...

  7. python 列表的增删改查操做1125 元组 的查操做

    列表的使用 定义 # 定义空列表 变量名 = [] 变量名 = list()# 定义有默认值的列表 变量名 = [数据1,数据n] 增 列表.append(数据) 删 按值删除 列表.remove(数 ...

  8. 【python列表插入函数】append() extend() insert() 三者区别与使用方法

    三个列表插入函数 append() extend() insert() append() append()函数是在列表末尾添加元素 append()括号内可以是数字.字符串- a=[1,2] a.ap ...

  9. 空列表,空数组 --append()尾部追加数据

    利用append()函数向空列表list, 空np.ndarray尾部追加数据 利用append()函数向list尾部追加数据 这是一种常见的方式,例如: import numpy as np lis ...

  10. Python列表操作中extend和append的区别

    1.用法 append()用于在列表末尾添加新的对象,输入参数为对象: extend()用于在列表末尾追加另一个序列中的多个值,输入对象为元素队列: 2.相同点 两个都是对列表即list进行的操作 具 ...

最新文章

  1. 狂赚 1227 亿!腾讯员工 2020 年人均年薪 81 万;小米员工人均年薪 45 万
  2. JDBC:Java世界中的ODBC
  3. [转]MSXML版本历史
  4. Python从键盘输入多行文本数据的方法
  5. [渝粤教育] 西南科技大学 货币银行学 在线考试复习资料
  6. codeUp 2143: 迷瘴 浮点计算|贪心
  7. LeetCode-210 Course Schedule II
  8. Java学习笔记(20)
  9. OWASP Top 10 2017 10项最严重的 Web 应用程序安全风险
  10. tracert命令详解
  11. linux编辑乱码华为光猫,华为光猫修改双模、SN序号、MAC地址方法
  12. wxid中文是什么_wxid开头的微信号是什么意思?怎么添加微信好友
  13. 50元打造双网卡负载均衡服务器(Network Load Balancing)
  14. unity 数字键的输入及刚体的速度的设置
  15. OpenCV开发笔记(七十一):红胖子8分钟带你深入级联分类器训练
  16. 【SendSms】短信服务java.lang.NoSuchMethodError: com.google.gson.JsonParser.parseString(Ljava/lang/String;)
  17. 免费顺丰快递鸟单号查询不限次数api接口申请步骤
  18. matlab在能量守恒中的应用,MATLAB在《大学物理》课程实践教学中的应用分析
  19. css常用font-family
  20. 介绍家乡的html源代码_APICloud Studio3.0最新功能及使用流程介绍

热门文章

  1. win10今日热点弹窗怎么删除_“今日热点”怎么去掉,每次弹窗很烦!是哪个软件附带的,我想卸载了!谢谢有心人!~~...
  2. centos安装pip失败:No package pip available.
  3. ajax每次只加载3张图片,使用加载图片解决在Ajax数据加载中页面出现短暂空白的问题(推荐)...
  4. 爱情指数测试脸型软件,心理测试:你和谁的脸型最像?测出你的幸运指数是多少!...
  5. ie浏览器框架不显示_Python 爬虫(四):Selenium 框架介绍与使用
  6. 使用shinydashboard编写高级UI页面(1)
  7. Ctftool:CTF漏洞利用工具
  8. Linux源码包和脚本安装包的安装方法
  9. 20190613 一个SQL问题
  10. MyBatis框架及原理分析