在 Python 中,元组是不可变序列,那为什么当元组中的元素是可变序列时(如 list、dict)可进行增删的操作?

在定义一个元组时,Python内部会为元组中的每一个元素分配一个内存地址,当我们更改这个列表时,
只是更改了这个列表中的内容,但是这个元组的元素所指向的内存地址是没有被更改的,也就没有违背不可变序列的要求
所以是可以进行增删操作的。示例代码如下

In [35]: tup = ([1,2],2)

In [36]: [id(i) for i in tup]
Out[36]: [2056970648264, 1724785392] In [37]: tup[0].append(1) In [38]: tup[0]
Out[38]: [1, 2, 1] In [39]: [id(i) for i in tup]
Out[39]: [2056970648264, 1724785392]

最新文章

  1. W.Richard Stevens sock program
  2. C#如何调用COM
  3. java面向对象编程——第二章 java基础语法
  4. LINQ基础(一)
  5. linux下面的查找命令
  6. Linux:返回上一次目录 / 返回上次命令目录
  7. 将JSON映射为实体对象(iOS篇)
  8. python文件结构与import用法
  9. EBS总账模块与其他模块数据关联关系
  10. s6k0:一种输入法分词关联模型演示
  11. elasticsearch(6.2.3)安装Head插件
  12. 【blog】SpringBoot聚合项目打包问题
  13. windows server 修改远程桌面连接端口号
  14. Mysql在master上查看有哪些slave
  15. 在Outlook客户端使用SSL加密,弹出安全证书警告的解决方法。
  16. C#重点内容之:接口(interface)(一)网络初级示例
  17. Go Session 使用简介
  18. new的三种形态
  19. BugPhobia展示篇章:学霸在线系统Alpha阶段展示
  20. 学习 java 编程语言两个月来的感受

热门文章

  1. SQL 先固定特殊的几行数据之外再按照某一字段排序方法(CASE 字段排序(CASE WHEN THEN)
  2. tomcat+java+redis环境linux安装
  3. C语言的关键字和数据类型
  4. Android--自定义Dialog style
  5. PHP Math函数
  6. redis主从中断异常处理
  7. 翻译-在10行代码之内创建容器化的.net core应用
  8. git本地下载github上的某项目的部分资源
  9. iOS - 外包开发常用第三方库(1)
  10. vue 使用vue-video-player播放hls格式视频