世界安静的时候,我只能听到自己的声音
—— 24.2.1
为什么需要元组?
元组同列表一样,都是可以封装多个,不同类型的元素在内,最大的不同点在于:
列表是可以修改的
元组一旦定义完成,就不可修改
所以当我们需要在程序内封装数据,又不希望封装的数据被篡改,那么元组就十分合适
一、定义元组
元组定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型
定义元组字面量:
(数据,数据……,数据)
定义元组变量:
元组名 = (数据,数据,……,数据)
定义空元组:
元组名 = () # 方式1
元组名 = tuple() # 方式2
注意:元组若只有一个数据,这个数据后面也要添加逗号
#定义元组字面量
(1,2,3,"一切都会好的",True)
#定义元组变量
arr = (1,1,4,"苦难是花开的伏笔","一切都会好的")
#定义空元组
arr1 = () #方式1
arr2 = tuple() #方式2
print(type(arr1)) # 打印元组类型
print(arr)
#如果元组只有一个数据,这个数据之后要添加逗号
arr3 = ("一切都会好的,我一直相信",)
print(type(arr3))
二、元组的嵌套
元组中的类型不受限,所以可以在元组中再嵌套元组
使用中括号索引取出具体的内容
t = ((0,1,2,3,4,5),(3,8,7,5,9))
print(t[1][4])
三、元组的相关操作
方法 作用
index() 查找某个数据,如果数据存在则返回对应的下标,否则报错
count() 统计某个数据在当前元组出现的次数
len(元组) 统计元组内的元素个数
元组不可修改
1.index() 查找某个数据
元组名.index(查找的数据)
可以用变量接收
arr = (1,1,4,"苦难是花开的伏笔","一切都会好的")
index1 = arr.index("一切都会好的")
print(f"数组arr中(一切都会好的)的下标是{index1}")
2.count(),统计某个元素在元组内出现的次数
元组名.count(统计的元素)
可以用变量接收
Tuple = ("一切都会好的","我一直相信","万事胜意","苦难是花开的伏笔","我一直相信","我一直相信","我一直相信")
num = Tuple.count("我一直相信")
print(f"Tuple在元组内共有{num}个我一直相信")
3.len(),统计元组中元素的数量
len(元组名)
可以用变量接收
# len 统计元组元素数量
Tuple1 = (9,7,8,5,6,1,4,2,3,13,15,19,21,27,36,45,54,63,72,81)
count = len(Tuple1)
print(count)
4.元组的遍历
①for循环 ②while循环
Tuple = ("一切都会好的","我一直相信","万事胜意","苦难是花开的伏笔")
# 元组的遍历 while循环
index = 0
while index < len(Tuple):
print(Tuple[index])
index += 1
# 元组的遍历 for循环
for i in Tuple:
print(i)
5.元组的相关操作——注意事项
① 不可以修改元组的内容,否则会直接报错
② 可以修改元组内的list(列表)的内容(修改元素、增加、删除、反转等)
③ 多数特性和列表(list)一致(有序、任意数量元素、允许重复元素),不同点在于不可以修改的特性
四、练习案例:元组的基本操作
定义一个元组,内容是:('周杰伦',11,['football','music']),记录的是一个学生的信息(姓名、年龄、爱好)
请通过元组的功能(方法),对其进行:
1. 查询其年龄所在的下标位置
2. 查询学生的姓名
3. 删除学生爱好中的football
4. 增加爱好:coding到爱好list(列表)内
Tuple = ('周杰伦',11,['football','music'])
print(Tuple.index(11))
print(Tuple[0])
del Tuple[2][0]
print(f'删除学生爱好中的football后的元组为:{Tuple}')
Tuple[2].append('coding')
print(f'增加爱好coding后的元组为:{Tuple}')