这节课我们学习的内容是元组 ,在学习元组之前我们先来看一下元组长什么样。
name_list = ['⼩明', '⼩红', '⼩绿']
t1 = (10, 20, 30)
print(name_list)
print(type(name_list))
print(t1)
print(type(t1))
在上面我们可以看到tuple(元组)和前面我们学过的列表很像,那么他们有什么不一样呢?
其实最主要的区别是元组内的数据是不能修改的,也就是说元组是列表的升级款。既然元组不能改变,那么元组就没有增删改、倒叙等,其他的差不多一样。
⽬标
元组的应⽤场景
定义元组
元组常⻅操作
1、元组的应用场景
元组的应用场景注意是存储一些不可变的变量,比如学生的身份证号是不可变的,这时候我们就可以用元组存贮学生的身份证号。
2、定义元组
元组特点:定义元组使⽤⼩括号,且逗号隔开各个数据,数据可以是不同 的数据类型。
# 多个数据元组
t1 = (10, 20, 30)
# 单个数据元组
t2 = (10,)
注意:如果定义的元组只有⼀个数据,那么这个数据后⾯也好添加 逗号,否则数据类型为唯⼀的这个数据的数据类型
3、元组常⻅操作
元组数据不⽀持修改,只⽀持查找,具体如下:
1.按下标查找数据
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1[0]) # aa
2、index():查找某个数据,如果数据存在返回对应的下标,否则报错, 语法和列表、字符串的index ⽅法相同。
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1.index('aa')) # 0
3.count():统计某个数据在当前元组出现的次数。
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1.count('bb')) # 2
4.len():统计元组中数据的个数。
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(len(tuple1)) # 4
特别注意:元组内的直接数据如果修改则⽴即报错,但是如果元组⾥⾯有列表,修改列表⾥⾯的数据则是⽀持的, 故⾃觉很重要。
tuple2 = (10, 20, ['aa', 'bb', 'cc'], 50, 30)
print(tuple2[2]) # 访问到列表
# 结果:(10, 20, ['aaaaa', 'bb', 'cc'], 50, 30)
tuple2[2][0] = 'aaaaa'
print(tuple2)
tuple1 = ('aa', 'bb', 'cc', 'bb')
tuple1[0] = 'aaa'
这里修改 元组中列表的内容不报错。但是直接修改元组的内容报错(下图报错在第八行)
5、元组的应用
⾃动组包
t = (10,20,30)
a,b,c = t # a 10 b 20 c 30
⾃动解包
a = (1,2,3,4,5,5)
print(a)
a = 1,5,7
print(a)
格式化输出
t = ('bill',30)
print('姓名是:%s,年纪是:%d'%t)
让列表不可被修改,保护数据安全
l = [10,20,30]
# 将列表变成元组 元素就不可变了
t = tuple(l)