元组
元组是一个数据的容器,但是容器的数据不可以修改(ID不能变)。
元组是不可变数据类型,它是有序的、可迭代的。
一、元组的创建
- 格式
(数据1, 数据2, ... , 数据n)
- 元组的创建
# 1. 创建一个至少两个元素的元组
t1 = (11, 22, 33)
print(t1, type(t1)) # (11, 22, 33) <class 'tuple'>
# 2. 创建空元组
t2 = ()
print(t2, type(t2)) # () <class 'tuple'>
# 3. 创建一个元素的元组
t3 = (11,)
print(t3, type(t3)) # (11,) <class 'tuple'>
# 4. 不使用括号创建元组
t41 = 11, 22, 33
print(t41, type(t41)) # (11, 22, 33) <class 'tuple'>
t42 = 11,
print(t42, type(t42)) # (11,) <class 'tuple'>
二、常用方法
由于元组是有序的,因此元组有下标(索引),也可以进行切片操作。
2.1 下标和切片
- 下标
t1 = (11, 22, 33, 55)
print(t1[1]) # 22
print(t1[2]) # 33
print(t1[-2]) # 33
- 切片
t1 = (11, 22, 33, 55)
print(t1[:-2:-1]) # (55,)
print(t1[::-5]) # (55,)
2.2 方法
方法 | 描述 |
---|---|
T.index(value[, start[, stop]]) -> int | 检索出指定元素的下标,如果没找到则报错 |
T.count(value) -> int | 统计元素的个数 |
index()
t1 = (11, 22, 33, 55)
print(t1.index(22)) # 1
print(t1.index(22, 1)) # 1
count()
t1 = (11, 22, 33, 22, 55)
print(t1.count(22)) # 2
三、元组的不可变原则
3.1 元组中的元素是否只可以修改?
t1 = (11, 22, 33, 55)
t1[1] = 66 # 报错。元组中元素的指向不能变更
3.2 修改元组中的列表
t1 = (11, 22, [1, 2], 33)
t1[2].append(3)
print(t1) # (11, 22, [1, 2, 3], 33)