概述
元组和列表很相似,不过元组是不能在原处改变的对象,这点性质和字符串一致,虽然元组不支持任何方法调用,但是元组具有列表的大多数属性,以下是元组的一些特性。
- 支持索引和切片 既可以通过索引和切片读取元组内的数据
- 固定长度 由于元组为不可变的序列,所以是不能在生成一个拷贝的情况下进行增删的
- 任意嵌套 即元组和列表、字典都支持其他的复合对象,比如其他的元组,字典,列表等
常见使用示例
一些基础定义
- # 空元组
- T = ()
-
- # 简单元组
- T = (1, 2, 3, 4)
- print(T)
-
- # 嵌套元组
- T = (1, (2, 3), 4)
- print(T[1][1])
- 复制代码
示例结果:
- (1, 2, 3, 4)
- 3
- 复制代码
元组转化的简单使用
- # 字符串转元组
- T = tuple('PYTHON')
- print(T)
-
- # 列表转元组
- L = list("PYTHON")
- T = tuple(L)
- print(T)
- 复制代码
示例结果:
- ('P', 'Y', 'T', 'H', 'O', 'N')
- ('P', 'Y', 'T', 'H', 'O', 'N')
- 复制代码
索引和切片
- T = (1, 2, 3, 4, 5)
- # 索引
- print(T[3])
- # 切片
- print(T[2:4])
- 复制代码
示例结果:
- 4
- (3, 4)
- 复制代码
简单迭代
for循环迭代元组
- T = (1, 2, 3, 4, 5)
- for t in T:
- print(t * 10)
- 复制代码
示例结果:
- 10
- 20
- 30
- 40
- 50
- 复制代码
列表推导
- T = (1, 2, 3, 4, 5)
- L = [x * 10 for x in T]
- print(L)
- 复制代码
示例结果:
- [10, 20, 30, 40, 50]
- 复制代码
元组使用要义
当我们在学习元组时,总是会纳闷已经有了列表为什么还需要学习使用元组看似鸡肋的内置对象呢? 我们可以通过元组的不可变性运用在一些场景中,因为其不可变性本身本身就提供了某种完整性,比如使用元组来实现函数的多返回值,作为参数传递给函数调用、或是从函数调用那里获得参数时,保护其内容不被外部接口修改。