Python3 元组
811字约3分钟
2024-08-10
Python
的元组与列表类似,不同之处在于元组的元素不能修改
元组使用小括号 ( )
,列表使用方括号 [ ]
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可
# 创建空元组
t1 = ()
t2 = tuple()
# 定义单个元素的元组
t3 = ("hello", )
# 定义多个元素元组
t4 =(1, "Hello", True)
# 元组的嵌套
t5 = ((1, 2, 3), (4, 5, 6))
访问元组
元组可以使用下标索引来访问元组中的值
下标索引取出元素
t1 = (1, 2, 3)
print(t1[1]) # 2
嵌套列表通过下标索引访问元素
t2 = ((1, 2, 3), (4, 5, 6))
num = t2[1][2]
print(f"从嵌套元组中取出数据:{num}")
# 从嵌套元组中取出数据:6
index
查找方法下标索引方法
t3 = ("Java", "Python", "Go")
index = t3.index("Go")
print(f"在元组t6中查找 Go 的下标是:{index}")
# 在元组t6中查找 Go 的下标是:2
修改元组
元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
tup1 = (1, 2)
tup2 = ('Apple', 'Mango')
# 创建一个新的元组
tup3 = tup1 + tup2
print(tup3)
# (1, 2, 'Apple', 'Mango')
删除元组
元组中的元素值是不允许删除的,但我们可以使用 del
语句来删除整个元组
tup = (1, 2, 'Apple', 'Mango')
print(f"删除前的元组 tup : {tup}")
del tup
print(f"删除后的元组 tup : {tup}")
删除后 tup
未定义
删除前的元组 tup : (1, 2, 'Apple', 'Mango')
Traceback (most recent call last):
File "D:\project\py\base\test.py", line 4, in <module>
print(f"删除后的元组 tup : {tup}")
NameError: name 'tup' is not defined
元组索引 & 截取
因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素
tup = [0, 1, 2, 3, 4, 5, 6]
表达式 | 结果 | 描述 |
---|---|---|
tup[2] | 2 | 获取下标为 2 的列表元素,即列表中的第三个元素 |
tup[-2] | 5 | 从后往前,读取倒数第二个元素 |
tup[2:] | (2, 3, 4, 5, 6) | 从下标为 2 元素开始后的所有元素 |
tup[1:4] | (1, 2, 3) | 从下标 1 开始到下标 4 结束,不包含下标为 4 的元素,步长为 1 |
tup[3:1:-1] | (3, 2) | 从下标 3 开始到下标 1 结束,不包含下标为 1 的元素,步长为 1 |
tup[1:5:2] | (1, 3) | 从下标 1 开始到下标 5 结束,不包含下标为 5 的元素,步长为 2 |
元组内置函数
len(tuple) | 计算元组元素个数 |
---|---|
max(tuple) | 返回元组中元素最大值 |
min(tuple) | 返回元组中元素最小值 |
tuple(iterable) | 将可迭代系列转换为元组 |
关于元组是不可变的
所谓元组的不可变指的是元组所指向的内存中的内容不可变
tup = ("Apple", "Pear")
# 不可修改
tup[0] = 'Mango'
# Traceback (most recent call last):
# File "D:\project\py\base\test.py", line 2, in <module>
# tup[0] = 'Mango' # 不支持修改元素
# TypeError: 'tuple' object does not support item assignment
tup = ("Apple", "Pear")
print(id(tup)) # 查看内存地址
# 2467669436736
tup = (1,2,3)
print(id(tup)) # 内存地址不一样了
# 2467669867712