认识元组
不可变数据类型,可以一次性存储多个数据,且可以为不同数据类型。元组内的元素不能修改
元组用( )定义,数据之间用 「 , 」隔开;或者省略小括号
tuple(
)函数, 参数 iterable 是可迭代对象(字符串、列表、元组、集合和字典等)a = tuple([1, 2, 3])print(a)
使用逗号的方法
atuple = 1, 2, 3print(type(atuple))
使用小括号的方法
atuple = (1, 2, 3)print(type(atuple))
# 创建空元组info_tuple = ()# 元组只包含一个元素in_tuple = (1, )
只有一个数据要添加逗号表示是元组
元组属性
转换
tuple() 函数,将其它的数据类型转化成元组
索引
语法: 元组序列[ index ],元组的索引默认从 0 开始
tuple1 = (10, 20, ['aa','bb','cc'],50,30)temp = tuple1[2][0]print(temp)------------------------------------------->>> 'aa'
切片
对操作的对象截取其中一部分的操作,字符串、列表、元组都支持切片操作
- 语法: 元组序列 [ start: end: step]
- start: 切片操作包含开始位置的元素。正数索引表示从左到右默认从 0 开始取元素,负数索引表示从右到左默认从 -1 开始取元素
- end: 切片操作不包含结束位置的元素。
- step: 代表每次取值的跨度,不写表示默认是 1。步长为负数,表示倒序(从右往左)选取数据
- 步长: 代表每次取值的跨度,默认是 1,正数表示从左到右,负数表示从右到左
- 选取方向和步长的方向冲突,则无法选取数据
解包
将多个数据放到元组中,这个过程被称为元组打包;解包(拆包)就是将元组中的元素取出,分别赋值给不同的变量。
主要用于函数返回值
name, age = ('tony', 20)print(name)print(age)------------------------>>> tony>>> 20
元组方法
元组不支持增加、修改操作,因为是不可变类型。同时元组不支持删除单个元素,但是可以删除这个元组
删除
- del 和 del()
- del 元组 或 del(元组)
查找
- index()
- 元组序列.index( 数据, 【 开始位置下标, 结束位置下标 】 )
- 元组序列.rindex( 数据, 开始位置下标, 结束位置下标 ),查找方向右侧开始
- 如果存在就返回数据开始的位置下标,否则返回错误
- count()
- 元组序列.count( 数据, 【 开始位置下标, 结束位置下标 】 )
- 开始和结束位置下标可以省略,表示在整个元组序列中出现的次数
- 如果存在就返回存在的次数,否则返回 0
- len()
- len( 元组序列, 【 开始位置下标,结束位置下标 】 )
- 返回值是元组中数据的个数
元组内列表元素修改
tuple1 = (10, 20, ['aa','bb','cc'],50,30)tuple1[2][0] = 'aaa'print(tuple1)
元组有列表,列表里面的数据是支持修改的,因为列表是可变类型
元组遍历
同 list 遍历操作一样,推荐 for..in
tup = (1, 2, 3)for i in tup:print(i)----------------->>> 1>>> 2>>> 3
元组应用场景
- 元组在字典中可以当做 key 来使用,而列表不可以
- 在函数中,有时候要返回多个值,一般采用元组的方式
- 在一些设定中不能修改值的场景下使用元组来代替列表
