今天学委都在写代码,写了很多篇,这次我们讲解元组Tuple,不要错过!
什么是Tuple
Tuple 是Python特有的一种类型,它有点像列表但是也不完全是。
学委意识到这上面的内容还是过于技术表达:简单来说元组,可以理解为一组元素的构成的一个小组。比如大学做课题几个人一组,可以理解为一个元组。(后面想到更好的例子再来更新)。
如果简单粗暴理解,那么我们暂且称tuple为限定长度的list,不会过份!
这是tuple
(1,2,3)
获取tuple类型数据的元素:
tup = (1,2,3)
tup[0] #获取第一个下标对应元素
tup[0:2] #获取子元组
更多操作变种不说了,这个在学委的Python 基础上篇中讲述了。
tuple的增删查改
基本别想了,Python中的元组是不允许篡改。
但是,有个前提,tuple中元素如果非基础数据类型,也就是引用类型。
那么我们是有办法修改它内部状态的,如下图:
我们可以查看尝试修改’t[0]’ 的值的时候Python解释器马上抛出错误了!
那么元组上面能做啥操作?
基本上只有加法和乘法,效果就是生成扩展的新元组。
有点像1+1 = 11这个意思吧。
学委准备了下面的代码:
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2021/10/30 6:39 下午 # @Author : LeiXueWei # @CSDN/Juejin/Wechat: 雷学委 # @XueWeiTag: CodingDemo # @File : tupledemo2.py # @Project : hello tup = (3, 3, 3) # new_tup = tup - tup #TypeError: unsupported operand type(s) for -: 'tuple' and 'tuple' new_tup = tup + tup print(new_tup) # 学委还是很喜欢三连的,666 new_tup = tup * 3 print("三连开光过的tuple:", new_tup) # new_tup = tup / 3 # 不支持下次一定啊! print("'666' in new_tuple ? ", '666' in new_tup)
读者可以直接复制运行代码,学委补充了运行效果图:
list 转tuple
前面我们粗暴的把tuple当做限定长度的list了(有些场景可以很有用,比如定长list)。
所以我们有时候也会把list转成tuple,照样获取元素进行业务操作。
下面学委准备了一些代码展示:
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2021/10/30 6:39 下午 # @Author : LeiXueWei # @CSDN/Juejin/Wechat: 雷学委 # @XueWeiTag: CodingDemo # @File : tupledemo3.py # @Project : hello tup = (3, 3, 3) new_tup = ([x * 2 for x in tup]) print("加倍过的tuple:", new_tup) list = [6, 6, 6] new_tup = tuple(list) print("把list转tuple: ", new_tup) if 6 in new_tup: print("new_tup has 6 !")
运行效果如下:
总结
除了上面介绍的一些函数,我们还能使用内置的一些函数(max/min等)对tuple进行操作,这些函数也能对string, list 等进行操作,可以关注订阅后面再单独总结一下。