python 元组的详细用法

发布时间:2024年01月16日

当前版本:

  • Python 3.8.4

????????

文章目录如下

1. 介绍元组

2. 定义元组

3. 访问元组

4. 查询元组


????????

1. 介绍元组

? ? 元组(Tuple)是一个有序的、不可变的数据序列。它可以包含各种类型的数据,例如数字、字符串、列表等。元组使用圆括号()来表示,其中的各个元素之间用逗号分隔。

? ? 与列表(List)不同,元组是不可变的,也就是说,一旦创建后,就不能修改其元素的值。这意味着不能向元组中添加、删除或修改元素。这种属性使得元组在某些情况下更加安全和可靠,例如作为字典的键值。

元组包含如下优点:

  • 不可变性:元组的元素不可修改,这种特性使得元组在需要保护数据不被意外修改的场景下非常有用。例如,使用元组来表示一些常量或配置信息,确保它们不会被修改。

  • 可用作字典的键:由于元组的不可变性,它们可以作为字典的键。而列表等可变对象则不能作为字典的键,因为字典的键需要是可哈希的。

  • 性能优化:相对于列表,元组在内存占用和迭代速度方面具有优势。元组的大小和结构在创建后不会改变,这使得在创建和访问元组时更加高效。

  • 作为函数返回值:元组常用于函数返回多个值的情况。函数可以返回一个元组,然后通过解包操作将元组的值分配给多个变量。

????????

2. 定义元组

元组可以直接通过圆括号或 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)

?????????

3. 访问元组

  • 访问元组最多的方式是通过索引取出单个元素或多个元素,或者使用遍历的方式将其全部取出,逐个处理。

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个元素

????????

【案例三】利用步长跳过一些元素

  • 变量[起始索引 : 结束索引 : 步长] :指定开始索引和结束索引后可选步长,如果不指定默认为1
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}")

????????

4. 查询元组

  • 这个章节主要介绍统计元素的数量,求最大值、最小值等。

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)

文章来源:https://blog.csdn.net/m0_61066945/article/details/135511097
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。