当前版本:
????????
文章目录如下
????????
? ? 元组(Tuple)是一个有序的、不可变的数据序列。它可以包含各种类型的数据,例如数字、字符串、列表等。元组使用圆括号()来表示,其中的各个元素之间用逗号分隔。
? ? 与列表(List)不同,元组是不可变的,也就是说,一旦创建后,就不能修改其元素的值。这意味着不能向元组中添加、删除或修改元素。这种属性使得元组在某些情况下更加安全和可靠,例如作为字典的键值。
元组包含如下优点:
不可变性:元组的元素不可修改,这种特性使得元组在需要保护数据不被意外修改的场景下非常有用。例如,使用元组来表示一些常量或配置信息,确保它们不会被修改。
可用作字典的键:由于元组的不可变性,它们可以作为字典的键。而列表等可变对象则不能作为字典的键,因为字典的键需要是可哈希的。
性能优化:相对于列表,元组在内存占用和迭代速度方面具有优势。元组的大小和结构在创建后不会改变,这使得在创建和访问元组时更加高效。
作为函数返回值:元组常用于函数返回多个值的情况。函数可以返回一个元组,然后通过解包操作将元组的值分配给多个变量。
????????
元组可以直接通过圆括号或 tuple 来定义。
T = () # 定义一个空元组
T = tuple() # 定义一个空元组
????????
注意:当定义的元组只有一个元素时,需要加一个逗号。
T = ("AAA", )
如果不加逗号会被识别为字符串
????????
元组中的对象可以是数字、字符串、列表、元组、字典、集合等。
# 元组中可以包含数字、字符串、列表、元组、字典、集合等
T = (1, 2.1, 'AAA', [20], (30,), {'age':20}, {3,4})
????????
定义元组后,里面的值是不可变的
要么只能重新赋值
或者单独使用一个元组拼接其他元组
T1 = (1, 2)
T2 = ("A", "B")
T3 = T1 + T2 + ("C", "D")
?
????????
如果实在需要修改元组中的元素,那么可以先将元组转换为列表后更改,再将其转换回元组
# 定义一个元组
L = ("A", "B", 1, 2, 3)
# 将元组转换为列表后,修改第2个元素
L = list(L)
L[1] = "EEE"
# 再将该列表转换回元组
L = tuple(L)
?????????
1、通过索引来访问元组,索引的值从0开始,每个索引值对应一个元素。第1个元素的索引为0,第2个元素的索引为1,以此类推。。。
元组元素: A B C D E
正序索引: 0 1 2 3 4
反向索引:-5 -4 -3 -2 -1
【案例一】访问单个元素
T = ("A", "B", "C", "D", "E")
T[0] # 访问第1个元素
T[2] # 访问第3个元素
T[-1] # 访问最后一个元素
????????
【案例二】使用切片访问多个元素
T = ("A", "B", "C", "D", "E")
T[1:3] # 访问索引为1、2的值
T[:2] # 访问前2个元素
T[-2:] # 访问后2个元素
????????
【案例三】利用步长跳过一些元素
T = ("A", "B", "C", "D", "E")
T[:4:2] # 访问前4个元素,步长为2
T[::3] # 访问全部元素,步长为3
????????
2、通过遍历元素来访问(使用for循环将元素全部遍历后进行处理)
T = (1, 2.1, 'AAA', [20], (30,), {'age':20}, {3,4})
# 遍历元组中的元素
for i in T:
print(f"当前元素为:{i}")
????????
1、判断元组是否包含某个元素
T = (1, 2, 3, 'AAA', 'BBB')
# 判断AAA是否在元组内
'AAA' in T
# 判断0是否在元组内
0 in T
????????
2、统计元素的个数
T = (1, 2, 3, 'AAA', 'BBB')
len(T) # 统计长度
????????
3、统计某个元素在元组中出现的次数
T = (1, 2, 3, 'AAA', 'BBB')
T.count('AAA') # 统计某个元素出现的次数
????????
4、求最大值(元组内仅支持数字)
L = (1, 18, 5, 20)
max(L)
????????
?5、求最小值(元组内仅支持数字)
L = (1, 18, 5, 20)
min(L)
????????
?6、求和(元组内仅支持数字)
L = (1, 18, 5, 20)
sum(L)
????????
? 7、求平均值(元组内仅支持数字)
L = (1, 18, 5, 20)
avg = sum(L) / len(L)