元组编写为一系列对象,用逗号隔开,用括号括起来。与列表类似,但不支持原处修改。
虽然元组不支持任何方法调用,但元组具有列表的大多数属性:
任意对象的有序集合
通过偏移存取
不可变序列类型
固定长度,异构,任意嵌套
对象引用的数组:与列表相似,元组最好看做是对象引用的数组。元组存储指向其他对象的存取点(引用),并且对元组进行索引操作的速度相当较快。
| (,) | 空元组 |
| T = (0,) | 单个元素元组 |
| T = (0, 'Ni', 1.2, 3) | |
| T = 0, 'Ni', 1.2, 3 | 与上行相同 |
| T = ('abc', ('def', 'ghi')) | 嵌套元组 |
| T = tuple('spam') | |
| T[i] | |
| T[i][j] | |
| T[i:j] | |
| len(T) | |
| T1+T2 | 合并,生成新元组 |
| T*3 | 重复,生成新元组 |
| for x in T: print(x) | |
| 'spam' in T | |
| [x**2 for x in T] | |
| T.index('Ni') | |
| T.count('Ni') | 计数 |
sorted/T)得到一个排序好的新的元组,sorted是通用的内置函数,接受任何序列对象。
注意元组的不可变性值适用于元组本身顶层而并非其内容:
>>> T = (1, [2,3], 4)
>>> T[1] = 'spam'
Traceback (most recent call last):
File "<pyshell#40>", line 1, in <module>
T[1] = 'spam'
TypeError: 'tuple' object does not support item assignment
>>> T[1][0] = 'spam'
>>> T
(1, ['spam', 3], 4)
为什么有了列表还要元组?
元组的不可变性提供了某种完整性。元组可以确保在程序中不会被另一个引用修改,而列表就没有这种保证。
Learning Python, Fourth Edition, by Mark Lutz.
本文详细解释了Python中元组的定义、特性和使用场景,对比列表,强调了元组的不可变性带来的数据完整性和安全性。介绍了元组的基本操作,如创建、索引、切片、合并和重复,并展示了元组与列表在内存引用上的不同。
3491

被折叠的 条评论
为什么被折叠?



