Python中元组是一个不可变的序列,表示以逗号分隔的一组数据。元组中的元素可以是不同的数据类型,可以包含整数、浮点数、字符串、列表和其他元组。元组本身是不可变数据类型,所以一旦创建之后就不可再修改元组中的元素。
一、元组的创建
元组的创建有如下几种方式
1.1 圆括号直接创建
声明变量时,值通过圆括号进行包含可进行元组的创建,如下:
t = (1, 2, 3)
print(t) # (1, 2, 3)
print(type(t)) # <class 'tuple'>
终端输出如注释所示,其类型为tuple
。
创建成功后不可进行增、删、改的操作,否则会出现异常。如下:
1.2 通过tuple()函数进行创建
通过tuple()函数进行元组的创建实际上就是将一个列表通过tuple函数来转换成元组类型的数据。
lst = [1, 2, 3]
t = tuple(lst)
print(t)
print(type(t))
输出结果同1.1节。
1.3 省略圆括号
创建元组时,如果以圆括号方式进行创建的话可以直接省略圆括号
t = 1, 2, 3
print(t)
print(type(t))
输出结果不变。
二、元组的常用操作
元组除了不能增、删、改之外,是可以进行常规的序列操作的,大致同列表。
2.1 访问元组中的元素
元组中的元素可以通过下标值进行访问。如下:
t = 1, 2, 3
print(t[0]) # 1
print(t[1]) # 2
print(t[2]) # 3
元组的下标同样是从0开始,所以在取出第一个元素的时候下标为0。
2.2 切片操作
元组也可以像列表那样通过切片来获取某个区间的元素。
t = 1, 2, 3
print(t[1:3]) # (2, 3)
在元组进行切片的时候同样是满足左闭右开
原则,如上方取出下标范围在(1,3)的元素,所以就是取出下标为1、2的两个元素。
2.3 连接
元组也可以通过+
进行连接,例如将两个元组进行相连生成一个新的元组。
t1 = 1, 2, 3
t2 = 4, 5, 6
t = t1 + t2
print(t) # (1, 2, 3, 4, 5, 6)
2.4 复制元组
通过*
可以复制一个元组,如下:
t = 1, 2, 3
t1 = t * 3
print(t1) # (1, 2, 3, 1, 2, 3, 1, 2, 3)
注意这里指的复制不是生成多个元组,而是将元组中的元素进行复制放在同一个元组中。
2.5 获取元素索引
通过index()方法能够获取元素在元组中的索引
t = 1, 2, 3
print(t.index(2)) # 1
上方代码获取元素值2
在元组中的索引,其索引为1
2.6 获取元素在元组中出现的次数
通过count方法能够获取元素在元组中出现的次数,可用于统计元素个数。
t = 1, 2, 3, 4, 2, 5
print(t.count(2)) # 2
上方代码中元素2在元组中出现的次数为两次,所以count方法的返回值为2。
三、总结
通过本篇文章和上一篇文章的学习其实不难发现元组和列表存在着一定的异同。
相同点:
- 用来存储一组数据
- 支持索引和切片
不同点:
- 元组时不可变的,一经创建就不可再进行修改,而列表是可变的,可以动态的进行添加、修改、删除等操作
- 元组使用圆括号
()
表示,列表使用[]
中括号表示。 - 元组只有count()和index()两个方法,而列表的方法有很多,如增加append,插入insert,删除remove等等。
由于元组不可变,在处理一些需要保护数据不被修改的情况时,例如函数返回值、常量列表等,常常使用元组来代替列表,从而避免了数据改变的风险。而列表则比较常用于需要经常插入、删除、修改元素的情况,例如维护一组动态的数据。