我们前面所了解的列表是可以修改的,但如果想要传递的信息,不被篡改,列表就不合适了。
元组同列表一样,都是可以封装多个、不同类型的元素在内。
但最大的不同点在于:
元组一旦定义完成,就不可修改
所以,当我们需要在程序内封装数据,又不希望封装的数据被篡改,那么使用元组就非常合适了
元组的定义
定义语法:
嵌套元组的定义
注意:元组只有一个数据,所以这个数据后面要添加逗号
元组的相关操作
编号 | 方法 | 作用 |
1 | index() | 查找某个数据,如果数据存在返回对应的下标,否则报错 |
2 | count() | 统计某个数据在当前元组出现的次数 |
3 | len(元组) | 统计元组内的元素个数 |
# 统计单个元素个数
t5 = ("Eternallei", "Eternallei", "Eternallei", "Eternallei", "HelloWorld")
element = t5.count("Eternallei")
print(f"元组中'Eternallei'的个数是:{element}")
# 查找
t5 = ("Eternallei", "Eternallei", "Eternallei", "Eternallei", "HelloWorld")
index = t5.index("HelloWorld")
print(f"元组中'HelloWorld'的下标索引是:{index}")
# 统计所有元素个数
t5 = ("Eternallei", "Eternallei", "Eternallei", "Eternallei", "HelloWorld")
sum = len(t5)
print(f"元组中元素有:{sum}个")
元组由于不可修改的特性,所以其操作方法也非常少。
不可以修改元组的内容,否则会直接报错:
可以修改元组内的list的内容(修改元素、增加、删除、反转等):
不可以替换list为其它list或其它类型:
元组的遍历
同列表一样,元组也可以被遍历。可以使用while循环和for循环遍历它
while遍历:
for遍历:
运行结果:
经过上述对元组的了解,可以总结出列表有如下特点:
可以容纳多个数据
可以容纳不同类型的数据(混装)
数据是有序存储的(下标索引)
允许重复数据存在
不可以修改(增加或删除元素等)
支持for循环
多数特性和list一致,不同点在于不可修改的特性。
元组练习案例
接下来做一个案例增加我们对元组的使用:
定义一个元组,内容是:(记录的是一个人物的信息(姓名、年龄、爱好)
通过元组的功能(方法),对其进行:
1. 查询其年龄所在的下标位置2. 查询人物的姓名3. 删除人物爱好中的basket ball增加爱好football到爱好 list 内
代码实现:
# 定义元组mation
mation = ('Eternallei', 22, 'basketball', 'music')
# 查询年龄所在的下标位置
index = mation.index(22)
print(f"年龄所在下标索引是:{index}")
# 查询姓名
name = mation[0]
print(f"姓名:{name}")
# 删除爱好basketball,添加爱好football到lis内
information = list(mation) # 将元组转换为列表
del information[2]
print(f"删除后的效果:{information}")
information.insert(2,'football')
print(f"添加后的效果:{information}")
运行效果: