元组的概念
元组是有简单的对象组合而成, 元组与列表类似但是元组不支持修改, 即具有不可变性, 并且通常是由圆括号包括。
元组的特性任意对象的有序集合, 支持嵌套
元组的元素可以是任意类型对象, 另外元组它是有序的。支持使用偏移(索引)去存取
因为元组具有有序性, 所有元组是支持基于使用偏移的操作如索引与切片。
>>> a = (1,2,4,5,6,7)
>>> a[1:3]
(2, 4)属于不可变序列类型
元祖跟字符串一样属于不可变序列类型, 即不支持在列表原处修改操作。
>>> a[2] = 10
Traceback (most recent call last):
File "", line 1, in
TypeError: 'tuple' object does not support item assignment
常见的元组使用方法
() # 空元组
x = (0, )
x = (0, (1,2)) # 嵌套元组
tuple('hello') # ('h', 'e', 'l', 'l', 'o')
tuple([1,2,3]) # (1, 2, 3)
x[i] # 索引
x[i][j] # 嵌套的索引
x[i:j] # 切片 返回新元组
len(x) # 长度
t1 + t2 # 合并, 重复 (1,3) + (1,3), 返回新元组
(1, 3) * 4 # (1, 3, 1, 3, 1, 3, 1, 3) 返回新元组
for x in T: # 迭代
'x' in T # 成员关系
[x ** 2 for x in T] # 列表推导
t.index(x) # 查找索引
t.count(x) # x出现的次数元组的特殊语法: 逗号与圆括号
>>> x = (40)
>>> type(x)
>>> x = (40,)
>>> type(x)
如果你想赋值一个元素的元组, 建议使用逗号。 如果是多个元素可以忽略圆括号(但是建议始终使用圆括号保持代码可读性)
>>> x = 1,24,5
>>> type(x)
对元组进行排序
元组本身是不支持排序的, 你想对元组进行排序有两个方法:
- 把元组转变为列表, 再执行排序
- 直接使用sorted(T)为什么有了列表还需要元组这种对象类型
元组的不可变性提供了一种完整性, 可以确保元组不会被其他引用所修改。