讲解

前面我们看到了tuple一旦创建就不能修改。现在,我们来看一个“可变”的tuple:

>>> t = ('a', 'b', ['A', 'B'])

注意到 t 有 3 个元素:‘a’,'b’和一个list:[‘A’, ‘B’]。list作为一个整体是tuple的第3个元素。list对象可以通过 t[2] 拿到:

>>> L = t[2]

然后,我们把list的两个元素改一改:

>>> L[0] = 'X'
>>> L[1] = 'Y'

再看看tuple的内容:

>>> print t
('a', 'b', ['X', 'Y'])

不是说tuple一旦定义后就不可变了吗?怎么现在又变了?

别急,我们先看看定义的时候tuple包含的3个元素:

当我们把list的元素’A’和’B’修改为’X’和’Y’后,tuple变为:

表面上看,tuple的元素确实变了,但其实变的不是 tuple 的元素,而是list的元素。

tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向’a’,就不能改成指向’b’,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

理解了“指向不变”后,要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变。

任务

定义了tuple:

t = (‘a’, ‘b’, [‘A’, ‘B’])

由于 t 包含一个list元素,导致tuple的内容是可变的。能否修改上述代码,让tuple内容不可变?

代码

t = ('a', 'b', ('A', 'B'))
print t

本文部分摘自慕课《初识Python》课程

Python之“可变”的tuple相关推荐

  1. python建立tuple_Python之创建tuple和“可变”的tuple

    tuple是另一种有序的列表,中文翻译为" 元组 ".tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了. 同样是表示班里同学的名称,用tuple表示如 ...

  2. Python之List和Tuple类型(入门3)

    转载请标明出处: http://www.cnblogs.com/why168888/p/6407682.html 本文出自:[Edwin博客园] Python之List和Tuple类型 1. Pyth ...

  3. Python基础(list和tuple)可变集合和‘不可变’集合

    list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ...

  4. Interview:算法岗位面试—10.11下午—上海某公司算法岗位(偏机器学习,互联网数字行业)技术面试考点之XGBoost的特点、python的可变不可变的数据类型、赋值浅拷贝深拷贝区别

    ML岗位面试:10.11下午-上海某公司算法岗位(偏机器学习,互联网数字行业)技术面试考点之XGBoost的特点.python的可变不可变的数据类型.赋值浅拷贝深拷贝区别 Interview:算法岗位 ...

  5. python的可变参数 *args 和关键字参数**kw

    *args:非关键字参数,传入任意个不需要包含参数名的参数,参数实际以tuple形式传入 **kw:是关键字参数,传入任意个要带参数名的参数,参数实际以dict传入 例子 >>> d ...

  6. goupby 两个值 结果变了_一道问题引出的python中可变数据类型与不可变数据类型...

    一. 问题的提出 我们先来看两个对比 第一道题,当对象为整数时,最终结果:b = 2, a = 1,b的变化没有引起a的变化 第二道题,当对象为字典时,最终结果:a = {"name&quo ...

  7. python基础 list和tuple

    文章目录 一.list 1.len()函数可以获得list元素的个数 2.索引从0开始 3.末尾追加 append('xx') 4.也可以把元素插入到指定的位置,比如索引号为1的位置(insert) ...

  8. python 基础 list和 tuple dict和set

    list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. classmates = ['Michael', 'Bob', 'Tracy'] 要 ...

  9. 【Python】list和tuple 区别比较

    列表 List classmates = ['Michael', 'Bob', 'Tracy'] 元组 Tuple tuple一旦初始化就不能修改,比如同样是列出同学的名字: >>> ...

最新文章

  1. 超便携式截屏录屏软件FastStone Capture
  2. 数据包分片和重组 MTU与MSS
  3. Telnet连接详细步骤
  4. nginx的安装与配置
  5. guid会重复吗_知网查重会查重表格吗
  6. JAVA 框架-Spring
  7. MFC中使用CTabCtrl或CPropertySheet实现标签页
  8. Bochs 调试命令
  9. C# 获取二维数组的元素个数;获取行数,列数
  10. java 遍历文件夹 性能_Java函数式编程(十一):遍历目录
  11. 扑克牌游戏----花色从大到小按黑桃(Spade)、红桃(Heart)、梅花(Club)、方块(Diamond)排列
  12. 嵌入式Qt-做一个秒表
  13. 灵格斯(lingoes)词霸 + Acapela破解语音包(法语,德语,西班牙语,美国英语)
  14. 顺丰控股亏损:或时效件面临见顶危机,或下沉市场厮杀,或为220亿定增设局?
  15. WPF中的MVVM模式
  16. 数据分析师课程(ArcGIS按属性选数据、各种数据分析案例)
  17. 虚拟机RedHatLinux9安装Oralce92全过程
  18. 关于盛大热血传奇(传奇2)!!!
  19. 杂项:MIME(多用途互联网邮件扩展类型)百科
  20. powerpoint快速插入多张图片

热门文章

  1. mongodb 下载地址,mongodb.dll 下载
  2. HDOJ HDU 1849 Rabbit and Grass ACM 1849 IN HDU
  3. java基础编程思想题目2
  4. 学习笔记(1):activiti6.0从入门到精通-设置流程变量(概述)
  5. 饭团(0):提升效率的开发工具
  6. 田永强:优秀的JavaScript模块是怎样炼成的
  7. 漫谈Google的Native Client(NaCl)技术(二)–技术篇(兼谈LLVM)
  8. 访问控制权限和 ------java命名规范
  9. 【重识 HTML + CSS】CSS 特性
  10. powershell自动化操作AD域、Exchange邮箱系列(1)——powershell 简介