有序的不可变的集合, 和列表的区别就是元素不可变, 无法进行增删改
定义
- 一个元素的写法: 最后写一个逗号, 用来区分
(1): 数值
和(1,): 元组
这种形式
t = (123,)
- 多个元素的写法: 用逗号隔开每个元素
t = (1, "a", ["4", "g"], 3)
- 多个对象用逗号隔开, 默认为为元组
t = 1, "a", "2", "c", [1, "2"]
- 从列表转换为元组, 使用内置函数
tuple(list)
, 返回值是元组
list = [1, 2, 3, "a", "b", "c"]
result = tuple(list)
print(result, type(result))
# 打印: (1, 2, 3, 'a', 'b', 'c') <class 'tuple'>
- 元组嵌套: 一个元组可以是另一个元组的元素
t = (1, "a", (2, "c"))
常用操作
元组是不可变的, 不能进行增删改的操作
- 查
-
len(tuple)
: 元素个数
t = (1, "a", "2", "b") print(len(t)) # 打印: 4
-
tuple[index]
: 获取指定索引的单个元素
t = (1, "a", "2", "b") print(t[1]) # 打印: a print(t[-1]) # 打印: b
-
tuple[start=0:end=len(tuple):step=1]
: 切片, 获取多个元素, 范围[start, end)
-
start
: 索引起点 -
end
: 索引终点 -
step
: 步长, 负数时倒取 -
step
: 负数时, start对应元素的索引, 要小于end对应元素的索引 -
step
: 正数时, start对应元素的索引, 要大于end对应元素的索引
-
t = (1, "a", "2", "b") print(t[1:3:2]) # 打印: ('a',)
# 反转元组 t = (1, "a", "2", "b") print(t[::-1]) # 打印: ('b', '2', 'a', 1)
-
- 获取:
-
tuple.count(item)
: 获取元组中指定元素的个数
t = (1, "a", "2", "b", "a") print(t.count("a")) # 打印: 2
-
tuple.index(item, start=0, end=len(tuple))
: 获取指定元素在元组中的索引- 如果元组中没有指定的元组时会报错
- 当存在多个指定元素时, 只会获取
[start, end)
范围内中第一个指定元素的索引
# 获取元组中指定元素的索引 t = (1, "a", "2", "b", "a") print(t.index("a")) # 打印: 1
# 元组中不存在指定元素, 报错 t = (1, "a", "2", "b", "a") print(t.index("c")) # 报错: ValueError: tuple.index(x): x not in tuple
-
min(tuple)
: 获取元组中数值最小的数, 元组中的所有元素都必须是数值类型
t = (1, 2, 3, 4, 5) print(min(t)) # 打印: 1
-
max(tuple)
: 获取元组中数值最大的数, 元组中的所有元素都必须是数值类型
t = (1, 2, 3, 4, 5) print(max(t)) # 打印: 5
-
- 判定
-
元素 in tuple
: 判定元组是否包含指定元素
t = (1, "a", "2", "b", "a") print("a" in t) # 打印: True print("c" in t) # 打印: False
-
元素 not in tuple
: 判定元组是否不包含指定元素
t = (1, "a", "2", "b", "a") print("a" not in t) # 打印: False print("c" not in t) # 打印: True
-
- 比较
- Python2:
cmp(tuple1, tuple2)
, 比较两个元组的大小- 返回值: 元组1大于元组2, 返回1
- 返回值: 元组1小于元组2, 返回-1
- 返回值: 元组1等于元组2, 返回0
- Python3:
==, >, <
, 比较两个元组的大小或相等- 返回值: 布尔
- Python2:
- 拼接
-
tuple1 + tuple2
: 通过+
将两个元组中的元组放到一个新的元组中
t1 = (1, 2, 3) t2 = ("a", "b", "c") print(t1 + t2) # 打印: (1, 2, 3, 'a', 'b', 'c')
-
tuple * Int
: 将元组与一个整数相乘, 获取一个新的元组
t = (1, 2, 3) print(t * 2) # 打印: (1, 2, 3, 1, 2, 3)
-
- 拆包:
- 使用变量获取元组中数据
a, b = 1, 2 print("a = %d, b = %d" % (a, b)) # 打印: a = 1, b = 2
- 案例: 交换两个变量的值
# 交换两个变量的值 a = 1 b = 2 a, b = b, a print("a = %d, b = %d" % (a, b)) # 打印: a = 2, b = 1