【Python】数据容器之Tuple元组
目录
1、概述
tuple元组,也是Python中的一种数据容器类型,以 t = (元素1,元素2.....)的形式存储元素,可存储任意类型的数据,还可以在元组内再去存储元组元素,形成一个元组嵌套。
元组最大的特点是,元组内部的元素不允许修改,所谓的不允许修改是元组没有像list列表添加元素的append、insert等方法,元组定义完毕后,赋予的初始值在后续不允许修改。
【注意】这里有个特殊情况,在元组内定义的列表元素,是可以通过下标进行修改的。

2、元组的定义与获取值
(1)元组的定义
元组是由()存储元素,元素不允许修改
定义形式如下:
#定义一个元组(存储了数字、元组、字符串等类型)
tuple1 = (1, 2, 3, 4,("妙蛙种子","杰尼龟","小火龙"), "hello world")
#输出元组
print(tuple1)
#输出结果:(1, 2, 3, 4, ('妙蛙种子', '杰尼龟', '小火龙'), 'hello world')
(2)注意点:元组定义中只有一个元素值的情况
当元组定义完毕,我们只赋予了一个初始值的情况下,元组定义的方式需要发生微妙的变化,需要在后面加上一个,号,如下:
- t2 = ("hello") 这种形式返回的数据类型为str字符串类型
- t2 = ("hello",) 加上,号后,返回的数据类型为tuple元组类型
- 以上便是是否为元组类型的区别定义
# (2)定义单个元素时有个注意点
#定义一个元素需要在后面加上 ,号,否则她就不是元组类型
t2 = ("hello")
t3 = ("hello",) #单个元素时需要加上,号表示他是元组类型
t4 = (1)
#通过以下输出我们可以可看到加,和不加,号输出的类型区别
print(type(t2)) #输出<class 'str'>
print(type(t3)) #输出<class 'tuple'>
print(type(t4)) #输出<class 'int'>
这么写的情况也是为了和后面的另一个容器类型set集合进行区分,所以需要这么写
(3)如何去获取元组中的值
元组也是一个有序的容器类型,与列表一样,每个元素都拥有一个下标,我们可以通过下标去获取到对应的元素,如下:
#(3)通过下标取出元组中的元素值
t5 = (1, 2, 3,"hello", 4,("妙蛙种子","杰尼龟","小火龙"), "hello")
#取出数字2
print(t5[1]) #输出:2
#取出末尾的字符串hello
print(t5[-1]) #输出hello
取出嵌套元组中的"小火龙"元素
print(t5[5][2]) #输出:小火龙
3、元组定义完毕后是否还可以增加元素?
对于这个问题,目前来说元组是无法再去直接通过对应的方法去增加元素的,但是可以通过将两个元组合并的方式,将您的元素添加进元组之中,如下:
#定义两个元组并赋予初始值
t1 = (1, 2, 3, 4,("妙蛙种子","杰尼龟","小火龙"), "hello world")
t2 = (5,6,7)
#通过将两个元组使用+号连接,实现将两个元组合并
t3 = t1 + t2
#输出合并后的元组(类似于追加功能了)
print(t3)
4、若是修改元组内的元素会发生什么?
元组内的元素是不允许修改的,若是我们要修改,那么会出现报错,如下:
- 'tuple' object does not support item assignment(元组对象不支持赋值修改)
#(1)修改元组数据
t1 = (1,2,3,4,"hello")
#通过下标修改
t1[-1] = 5
print(t1)
#修改后会出现报错!!!

5、元组常用方法
元组因为不可修改的特性,所以他没有对应增加、删除、更新的功能方法,只剩下查看,常用的有以下几个方法:
- index()方法:获取指定元素在元组中所在的下标
- count()方法:获取指定元素在元组中出现的个数
- len()方法:内置len方法返回元组中元素的数量
(1)index方法获取指定元素在元组中所在的下标
# (1)通过index方法查找指定元素的下标
t5 = (1, 2, 3,"hello", 4,("妙蛙种子","杰尼龟","小火龙"), "hello")
print(t5.index("hello"))
#输出字符串第一个“hello”的下标位置是3,index方法无法直接返回嵌套元素的下标
(2)count方法获取指定元素在元组中出现的个数
#(2)count统计某个元素的数量
t5 = (1, 2, 3,"hello", 4,("妙蛙种子","杰尼龟","小火龙"), "hello")
print(f'hello的数量为:{t5.count("hello")}')
#输出:hello的数量为:2
(3)内置len方法返回元组中元素的数量
#(3)内置len函数统计元组的长度
t5 = (1, 2, 3,"hello", 4,("妙蛙种子","杰尼龟","小火龙"), "hello")
print(len(t5))
#输出:7(元组t5的元素个数为7,嵌套的元素算一个)
6、元组的遍历元素
元组元素的逐个遍历也是可以通过while和for两个循环来进行遍历,如下:
(1)使用while遍历元素
#(1)使用while遍历元组数据
t5 = (1, 2, 3,"hello", 4,("妙蛙种子","杰尼龟","小火龙"), "hello")
i = 0
while i < len(t5):
print(t5[i])
i += 1
"""
输出如下:
1
2
3
hello
4
('妙蛙种子', '杰尼龟', '小火龙')
hello
"""
(2)使用for遍历元素
#(2)使用for循环遍历元组数据
t5 = (1, 2, 3,"hello", 4,("妙蛙种子","杰尼龟","小火龙"), "hello")
for i in t5:
print(i)
"""
输出以下内容:
1
2
3
hello
4
('妙蛙种子', '杰尼龟', '小火龙')
hello
"""
7、总结
元组的特点有:元素有序、有下标、可重复、不可修改、可存储任意类型。
详细学习可参照以下地址
菜鸟教程:https://www.runoob.com/python3/python3-list.htmlhttps://www.runoob.com/python3/python3-tuple.html
我是小政同学,跟小伙伴们分享技术,大家跟我一起学习吧!
更多推荐



所有评论(0)