元组也不是那么“不可变”
来源:互联网 发布:nginx ssl 编辑:程序博客网 时间:2024/05/21 06:45
6.18.2 元组也不是那么“不可变”
虽然元组是被定义成不可变的,但这并不影响它的灵活性。元组并不像我们想的那么不可
变,这是什么意思?其实元组几个特定的行为让它看起来并不像我们先前声称的那么不可变.
比如说,既然我们可以把字符串组合在一起形成一个大字符串。那么把元组组合在一起形
成一个大的元组也没什么不对,所以,连接操作可用,这个操作一点都没有改变那些小元组。
我们所作的是把它们的元素结合在一起.这里有几个例子:
s = ‘first’
s = s + ’ second’
s
‘first second’t = (‘third’, ‘fourth’)
t
(‘third’, ‘fourth’)t = t + (‘fifth’, ‘sixth’)
t
(‘third’, ‘fourth’, ‘fifth’, ‘sixth’)
同样的概念也适用于重复操作。重复操作只不过是多次复制同样的元素,再有,我们前面
提到过可以用一个简单的函数调用把一个元组变成一个可变的列表。我们的最后一个特性可能
会吓到你。你可以“修改”特定的元组元素,哇!这意味着什么?
虽然元组对象本身是不可变的,但这并不意味着元组包含的可变对象也不可变了。
t = ([‘xyz’, 123], 23, -103.4)
t
([‘xyz’, 123], 23, -103.4)
t[0][1]
123
t[0][1] = [‘abc’, ‘def’]
t
Edit By Vheavens
Edit By Vheavens
([‘xyz’, [‘abc’, ‘def’]], 23, -103.4)
在上面的例子中,虽然 t 是一个元组类型变量,但是我们设法通过替换它的第一个元素(一
个列表对象)的项来“改变”了它。我们替换了 t[0][1],原来是个整数,我们把它替换成了一
个列表对象 [‘abc’,’def’].虽然我们只是改变了一个可变对象,但在某种意义上讲,我们也“改
变”了我们的元组类型变量。
- 元组也不是那么“不可变”
- Python基础--不可变序列:元组
- Python2 元组:不可变序列
- 编程也不是那么奇妙.........
- python大作战之不可变序列(元组tuple)
- 看样子SEO也不是那么神奇
- 字符串是不可变的
- Gcc也不是神,不可全信
- 【Python基础教程】第2章 列表和元组-2.4元组:不可变序列
- 泄漏的 2000 代码, 也不是想象中的那么好
- RAC的高可用也不是那么好用
- 码农也不是那么容易当的
- 也许你的事情别人也不是那么的关心
- 数据结构也不是那么没意思之双向循环链表
- Python:可变序列(list 列表) 与 不可变序列(tuple 元组) 特点
- 为什么String类型是不可变的?
- 为什么string是不可变的
- 为什么String类是不可变的
- java内存回收
- 用 wait-notify 写一段代码来解决生产者-消费者问题?
- java文件读取写出乱码问题解决
- react native(七) 界面 UI-demo
- 软件测试流程
- 元组也不是那么“不可变”
- C++中的虚函数、纯虚函数区别和联系
- 解决Apache无法解析PHP问题
- 一元多项式的加法和乘法运算(Java实现)——浙大数据结构(陈越)
- Android消息机制——深入理解Handler
- 最小的K个数
- MySQL server PID file could not be found![失败]
- C++ 宏定义禁止复制构造函数和赋值函数
- 通讯转换工具开发_webservice储值卡项目总结之XML与对象之间的转换