数据容器:tuple(元组)
元组的定义格式
元组定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型。
- 定义元组字面量
(元素, 元素,…, 元素) - 定义元素变量
变量名称 = (元素, 元素,…, 元素)
- 定义空元组
变量名称 = () # 方式1
变量名称 = tuple() # 方式2 # 该写法就是得到一个元组的类对象
# 定义元组 t1 = (1, "hello", True) t2 = () t3 = tuple() print(f"t1的类型是:{type(t1)},内容是:{t1}") print(f"t2的类型是:{type(t2)},内容是:{t2}") print(f"t3的类型是:{type(t3)},内容是:{t3}") # 定义单个元素的元组 【单个元素一定要在该元素后面加一个逗号才是元组】 t4 = ("hello") print(f"t4的类型是:{type(t4)},t4的内容是:{t4}") t5 = ("hello", ) print(f"t5的类型是:{type(t5)},t5的内容是:{t5}") # 元组的嵌套 t6 = ((1, 2), (3, 4)) print(f"t6的类型是:{type(t6)},t6的内容是:{t6}") # 下标索引取出内容 element = t6[1][1] print(f"从嵌套元组中取出元素:{element}")
运行效果:
t1的类型是:<class ‘tuple’>,内容是:(1, ‘hello’, True)
t2的类型是:<class ‘tuple’>,内容是:()
t3的类型是:<class ‘tuple’>,内容是:()
t4的类型是:<class ‘str’>,t4的内容是:hello
t5的类型是:<class ‘tuple’>,t5的内容是:(‘hello’,)
t6的类型是:<class ‘tuple’>,t6的内容是:((1, 2), (3, 4))
从嵌套元组中取出元素:4
元组的相关操作
# 元组的操作:index查找方法 t7 = ("hi", "hello", "python") index = t7.index("hello") print(f"元组t7中 hello的下标是:{index}") # 元组的操作:count统计方法 t8 = ("hi", "hello", "python", "hi") num = t8.count("hi") print(f"元组t8中 统计hi的数量有:{num}个") # 元组的操作:len函数统计元组的元素数量 t9 = ("hi", "hello", "python", "您好") num = len(t9) print(f"元组t9中共有元素:{num}") # 元组的遍历:while # 元组支持下标索引,所以可以用while index = 0 while index < len(t9): print(f"while:元组t9的元素:{t9[index]}") # 至关重要 index += 1 # 元组的遍历:for for element in t9: print(f"for:元组t9的元素:{element}")
元组的相关操作-注意事项
- 不可以修改元组内容,否则会直接报错
- 可以修改元组内list的内容(修改元素、增加、删除、反转等)
元组的特点
- 可以容纳多个数据
- 可以容纳不同类型的数据(混装)
- 数据是有序存储的(下标索引)
- 允许重复数据存在
- 不可以修改(增加或删除元素等)【如果元组里嵌套了list,那么list里的元素是可以修改的】
- 支持for循环、while循环
多数特性和list一致(有序、有任意元素、允许重复元素),不同点在于不可修改的特性
- 练习案例:元组的基本操作
# 元组的基本操作 # 定义一个元组,记录的是一个学生的信息(姓名,年龄,爱好) t10 = ("mary", 14, ["draw", "volleyball"]) # 1、查询年龄下标 index = t10.index(14) print(f"年龄所在下标:{index}") # 2、查询学生姓名 name = t10[0] print(f"name:{name}") # 3、删除学生爱好中的draw # del t10[2][0] t10[2].remove("draw") print(f"删除操作之后,学生的爱好:{t10[2]}") print(f"当前元组:{t10}") # 4、增加爱好coding t10[2].append("coding") print(f"添加之后,学生的爱好:{t10[2]}") print(f"当前元组:{t10}")
运行效果:
年龄所在下标:1
name:mary
删除操作之后,学生的爱好:[‘volleyball’]
当前元组:(‘mary’, 14, [‘volleyball’])
添加之后,学生的爱好:[‘volleyball’, ‘coding’]
当前元组:(‘mary’, 14, [‘volleyball’, ‘coding’])