Python数据容器——元组(tuple)

1、元组与列表的不同点

列表是可以修改的。如果想要传递的信息,不被算改,列表就不合适了。

元组同列表一样,都是可以封装多个、不同类型的元素在内。
但最大的不同点在于:元组一旦定义完成,就不可修改
所以,当我们需要在程序内封装数据,又不希望封装的数据被算改,那么元组就非常合适了。

2、定义元组

定义元组是使用小括号,(定义列表使用[])

定义元组:变量名称 = (元素1, 元素2, ……)

定义空元组:变量名称 =()      或     变量名称= tuple()

元组里只有一个数据:变量名称 = (元素1,)#这个数据的后面要加逗号

定义多维元组:变量名称 = ((1, 2, 3),  (4, 5, 6)) 

数据容器 可变性 语法表示 使用场景 迭代和索引  性能
列表(list) 可变(可以添加、删除或修改其中的元素) 使用方括号 [] 来表示,元素之间使用逗号分隔。
例如:my_list = [1, 2, 3]
通常,列表用于存储可变的数据集合,例如保存多个相同类型的数据。 都支持迭代和索引操作。
例如my_list[0] 
​​​​​​​列表还提供了一些方便的方法,如append() 和pop()来添加和删除元素。
由于元组是不可变的,相比之下,列表在执行添加、删除和修改等操作时需要更多的时间和内存。因此,如果数据不需要更改,使用元组可能会更高效。
元组(tuple) 不可变(一旦创建就不能改变其内容) 使用圆括号 () 来表示,元素之间同样使用逗号分隔。
例如:my_tuple = (1, 2, 3)
元组则通常用于存储不可变的数据集合,例如表示一个点的坐标。 都支持迭代和索引操作。
例如:my_tuple[1]

3、元组的操作

方法 作用
index() 查找某个数据,如果数据存在返回对应的下标,否别报错
count() 统计某个数据在当前元组出现的次数
len(元组名) 统计元组内的元素个数

还可以遍历元组


t1 = (111, "Hello", "World", "World", "Python")
# index查找
index1 = t1.index("Hello")
index2 = t1.index("World")
print(f"元素Hello在元组中的位置是: {index1}")   # 输出:元素Hello在元组中的位置是: 1
print(f"元素World在元组中的位置是: {index2}")     # 输出:元素World在元组中的位置是: 2(所以只会输出第一个遇到的下标)

# count统计方法
num = t1.count("World")
print(f"元组t1中一共有{num}个World")   # 输出:元组t1中一共有2个World

# len函数统计元组元素数据
num = len(t1)
print(f"t1的长度是{num}")   # 输出:t1的长度是5

# 元组的遍历:while
print("元组的元素有", end=":")
index = 0
while index < len(t1):
    print(t1[index], end=",")   # 输出结果:元组的元素有:111,Hello,World,World,Python,
    index += 1

print()
# 元组的遍历:for
print("元组的元素有", end=":")
for element in t1:
    print(element, end=",")   # 输出结果:元组的元素有:111,Hello,World,World,Python,
    

其他的都不可以使用,因为元组不可修改。

例如:在上述基础上,修改元组的元素值时,会报错:

t1[0] = 222  
# 报错:TypeError: 'tuple' object does not support item assignment

4、元组(tuple)内嵌套列表(list)

在元组内嵌套列表时,嵌套的列表仍然保持其自身的性质,而不是按照元组的性质来。元组是不可变的有序序列,使用圆括号 `()` 表示,而列表是可变的有序序列,使用方括号 `[]` 表示。当元组内包含列表时,列表保持其可变性,即可以对列表的元素进行添加、删除和修改等操作。可以修改元组内的list的内容(修改元素、增加、刷除、反转等):

t2 = (1, 2, ['Hello', 'World'])
t2[2][1] = 'Python'
print(t2)   # 输出:(1, 2, ['Hello', 'Python'])

4、练习案例

题目要求:定义一个元组,内容是:('周杰轮',11,[football,'music']),记录的是一个学生的信息(姓名、年龄、爱好),请通过元组的功能(方法),对其进行:
1.查询其年龄所在的下标位置。
2.查询学生的姓名。
3.副除学生爱好中的football
4.增加爱好:coding到爱好list内

猜你喜欢

转载自blog.csdn.net/weixin_48060069/article/details/132155699