1、元组的定义
元组是有序的,不可修改的,以逗号分割的,以小括号包围的序列,可以通过()和tuple函数定义。不能修改,只有在定义的一瞬间可以修改。
2、元组的优点
由于元组不可变,所以遍历元组比列表要快(较小的性能提升)。
由于元组不可变,所以元组中的数据被‘写保护’,这也可以联想到,一些软件比较重要的数据都是用元组存储的。
3、创建元组
示例1:
data=()print(type(data))在控制台输出的结果为
示例2:
data=11,22,33,44,'aa'print(type(data))print(type(data))在控制台输出的结果为
4、元组中一个逗号的秘密
示例:
data=(1)print(type(data))在控制台输出的结果为data_1=(1,)print(type(data_1))在控制台输出的结果为
为什么会出现上面的这种情况呢?
因为,Python中的()同样也表示数学运算的一个基本符号,比如(1+1)*2,所以这就和元组的这个小括号产生了歧义,当元组中只有一个元素,而又没有逗号的时候,它会把这元素运算出来,这个小括号会被Python解释器识别为一个运算符号,所以得到的是那个元素本身的数据类型。
5、获取元组元素也是使用索引进行操作
data=(1,1,1,2,3,4,)print(data[3])在控制台输出的结果为2
6、元组的修改
注意:虽然元组是不可以修改的,但是元组中嵌套元素为可修改类型,也是可以进行操作
Python中不允许修改元组的数据,包括不能删除、添加其中的元素。
示例1:
data=(1,2,['张飞','蔡文姬','李白','韩信'],3,4)data[2].append('铠')print(data)在控制台输出的结果为(1, 2, ['张飞', '蔡文姬', '李白', '韩信', '铠'], 3, 4)
7、tuple()函数
示例1:列表转元组
data=[1,2,3,4,5]print(tuple(data))在控制台输出的结果为:(1, 2, 3, 4, 5)
示例2:字符串转元组
data='abcdef'print(tuple(data))在控制台输出的结果为:('a', 'b', 'c', 'd', 'e', 'f')
示例3:元组转字符串
data=('a', 'b', 'c', 'd', 'e', 'f')print(''.join(data))在控制台输出的结果为abcdef
8、访问嵌套元组
示例:
data=(('a','b'),(1,2))print(data[1][0])在控制台的输出结果为1
9、元组的切片操作
示例1: 列表的从左向右切片操作
注意:索引是一个左闭右开的区间,也就是包含左侧不包含右侧
lsit1 = [1,2,3,4,5,6,7,8]print(lsit1[1]) # 从左到右获取索引为1的数在控制台输出的结果为2print(lsit1[-1]) # 从右到左获取第一个元素在控制台输出的结果为8print(lsit1[1:4]) # 从左到右获取索引1到4的元素(注意索引是一个左闭右开的区间,也就是包含左侧不包含右侧)在控制台输出的结果为[2, 3, 4]print(lsit1[1:6:2]) # 从左到右获取索引1到6的元素,且步长2,也就是隔一个元素取一个在控制台输出的结果为[2, 4, 6]
示例2: 列表的从右向左切片操作
lsit1 = [1,2,3,4,5,6,7,8]print(lsit1[1:6:-1]) # 从左到右获取索引1到6的元素,且步长-1,没有元素控制台输出的结果为[]print(lsit1[6:1:-1]) # 从右到左获取索引6到1的元素,且步长为-1控制台输出的结果为[7, 6, 5, 4, 3]print(lsit1[6:-1:-1]) # 从右到左获取索引6到-1的元素,且步长为-1,没有元素控制台输出的结果为[]print(lsit1[6:1:-2]) # # 从右到左获取索引6到1的元素,且步长为-2控制台输出的结果为[7, 5, 3]
10、元组的常用方法
![2ddea2517e49de029850aade4d958b89.png](https://i-blog.csdnimg.cn/blog_migrate/dee7b4f82aec6c00ed92f12636c73266.jpeg)
示例1: index()
使用方法:从左往右返回第一个遇到的指定元素的索引,如果没有,报错
data=('a', 'b', 'c', 'd', 'e', 'xuegod')print(data.index('a'))在控制台的输出结果为0data=('a', 'b', 'c', 'd', 'e', 'xuegod')print(data.index('f'))在控制台的输出结果为ValueError: tuple.index(x): x not in tuple
示例2: count()
使用方法:计算出元组中指定元素的个数
data=('a', 'b', 'c', 'd', 'e', 'xuegod','b')print(data.count('b'))在控制台输出的结果为2
11、元组和列表的区别
1、元组和列表都是有序的,元组不可修改,列表可修改。
2、元组和列表的元素可以是任何类型
3、元组的元素长度可以任意。