元组 tuple:
元组是序列容器
元组是不可变的序列(即一个元组创建后,他的元素是不可改变的),其他同list一样,元组是可以存储任意类型的数据的容器
1)元组的创建
元组的表达方式:
用小括号()括起来,单个元素括起来后加逗号(,)区分单个对象还是元组
创建空元组的字面值:
t = () #创建一个空元组用t绑定
创建非空元组的字面值
t = 200, #创建一个只有一个数字200的元组,用t绑定,注意“,”不可以删除
t = (20,) #创建一个只有一个数字20的元组,用t绑定,注意“,”不可以删除,删除后则为一个int型数
#这里不同于list,在list只有一个元素时是不需要添加“,”的
t = (1,2,3)
t = 1,2,3 #均为创建一个拥有三个元素的元组
#创建元组的关键在于逗号“,”而非括号
创建元组的错误示例:
t = (20) #此时的type(t)为“int”
x,y,z = (100,200,300) #下面这几个为序列赋值
x,y,z = 100,200,300
x,y,z = [100,200,300]
x,y,z = "ABC" #任然为序列赋值,不是元组
x,y = y,x #交换两个变量的绑定关系
#可以使用type(x)查看x的数据类型
#判断一个数据对象的类型是否为某个类型,使用is,一般不用“==”
eg: if type(x) is int:...
元组的构造函数 tuple
tuple() 生成一个空的元组,等同于()
tuple(iterable) 用可迭代对象生成一个新的元组
示例:
t = tuple()
t = tuple(“ABC”)
t = tuple(range(1,10,3))
2)元组的运算:
1.基本运算
+,+=,*,*=
示例
t = (1,2,3)+(4,5,6) #t = (1,2,3,4,5,6),功能与list等同
t += (1,2) #功能与list相同,但是是不同之处为此时t的id已经改变,而在list中此运算不改变id
t = (1,2)*2
t *= 3
2.比较运算:
< <= > >= == !=
比较运算与列表完全相同
3. in /not in 运算符
等同于列表中该运算的功能
4. 索引 和 切片
索引取值于切片取值的规则和功能跟列表中的完全相同
注:tuple元组不支持 索引赋值和切片赋值
3)元组的方法:
方法 | 作用 |
---|---|
T.index(v [, begin[, end]]) | 返回对应元素的索引下标, begin为开始索引,end为结束索引,当 value 不存在时触发ValueError错误 |
T.count(x) | 返回元组中对应元素的个数 |
4)元组相关的函数:
序列相关的函数也能用于元组中,功能相同,如:
函数 | 功能 |
---|---|
len(x) | 返回序列的长度 |
max(x) | 返回序列的最大值元素 |
min(x) | 返回序列的最小值元素 |
sum(x) | 返回序列中所有元素的和(要求序列中的每个元素值必须都为数字类型) |
any(x) | 真值测试,如果序列中有一个值为真值则返回True |
all(x) | 真值测试,如果序列中的所有元素的值都为真值则返回True |
sorted(iterable,reverse = False) | 返回对序列中的元素按升序进行排序的序列 |
reversed(iterable) | 返回可迭代序列的反转 |