Python中tuple的功能介绍
Tuple的功能介绍
1. 元组的两种方法
1. 元组的内置方法
-
两个元组的相加
格式:x.__add__(y)等同于x+y 例如:tu1 = (1,2,3,) print(tu1.__add__((2,3,4,))) >>> (1, 2, 3, 2, 3, 4) 返回值:tuple #只能是两个元组相加,生成一个新元组
-
判断是否是包含关系
格式:x.__contains__(y)等同于y in x 例如:tu1 = (1,2,3,) print(tu1.__contains__(3)) >>> True 返回值:bool #上述的y可以是任意对象object
-
判断两个元组是否相等
格式:x.__eq__(y)等同于x==y 例如:tu1 = (1,2,3,) print(tu1.__eq__((2,3,))) >>> False 返回值:bool #上述的y只能是元组
-
大于等于
格式:x.__ge__(y)等同于x>=y 例如:tu1 = (1,2,3,) print(tu1.__ge__((2,3,))) >>> False 返回值:bool #上述的y只能是元组
注:两个元组判断大小主要依据为元组的第一个元素的大小。
-
访问属性
格式:x.__getattribute__(self,name) 返回值:str
-
取出指定索引的值
格式:x.__getitem__(index)等同于tuple[index] 例如:tu1 = (1,2,3,) print(tu1.__getitem___(2)) >>> 3 返回值:object
-
元组元素化
格式:x.__getnewargs__() 例如:tu1 = (1,2,3,) print(tu1.__getnewargs__()) >>> ((1,2,3,),) 返回值:tuple #把原元组作为一个新元组的一个元素
-
大于
格式:x.__gt__(y)等同于x>y 例如:tu1 = (1,2,3,) print(tu1.__gt__((2,3,))) >>> False 返回值:bool #上述的y只能是元组
注:两个元组判断大小主要依据为元组的第一个元素的大小。
-
哈希化
格式:x.__hash__()等同于hash(x) 例如:tu1 = (1,2,3,) print(tu1.__hash__()) >>> 2528502973977326415 返回值:int
-
迭代器
格式:x.__iter__()等同于iter(x) 例如:tu1 = (1,2,3,) die = tu1.__iter__() print(die.__next__()) >>> 1 返回值:迭代器
-
小于等于
格式:x.__le__(y)等同于x<=y 例如:tu1 = (1,2,3,) print(tu1.__le__((2,3,))) >>> True 返回值:bool #上述的y只能是元组
注:两个元组判断大小主要依据为元组的第一个元素的大小。
-
长度
格式:x.__len__()等同于len(x) 例如:tu1 = (1,2,3,) print(tu1.__len__()) >>> 3 返回值:int
-
小于
格式:x.__lt__(y)等同于x<y 例如:tu1 = (1,2,3,) print(tu1.__lt__((2,3,))) >>> True 返回值:bool #上述的y只能是元组
注:两个元组判断大小主要依据为元组的第一个元素的大小。
-
相乘(复制)
格式:x.__mul__(num)等同于x*num 例如:tu1 = (1,2,3,) print(tu1.__mul__(2)) >>> (1,2,3,1,2,3) 返回值:tuple
- 不等于 格式:x.ne(y)等同于x!=y 例如:tu1 = (1,2,3,) print(tu1.ne((2,3,))) >>> True 返回值:bool #上述的y只能是元组
-
创建新元组
格式:x.__new__(tuple) 例如:tu1 = (1,2,3,) print(tu1.__new__(tuple)) >>> () 返回值:tuple
-
内置转换方法
格式:x.__repr__(self) 返回值:tuple
-
右→左 相乘(复制)
格式:x.__rmul__(num)等同于num*x 例如:tu1 = (1,2,3,) print(tu1.__rmul__(2)) >>> (1,2,3,1,2,3) 返回值:tuple
2. 常用方法
-
计数
格式:x.count(value) 例如:tu1 = (1,2,3,1,2,3,) print(tu1.count(2)) >>> 2 返回值:int
-
索引
格式:x.index(value,start,end) 例如:tu1 = (1,2,3,1,2,3,) print(tu1.index(2,1,4)) >>> 1 返回值:int #不指定范围时,默认全元组搜索
2. 元组操作
1. 元组的基础操作
-
加法
符号: + 格式:tuple1 + tuple2 例如:tu1 = (1,2,3,) tu2 = (‘a‘,‘b‘,) print(tu1+tu2) >>> (1,2,3,‘a‘,‘b‘) 返回值:tuple
-
乘法(复制)
符号: * 格式:tuple1 * num 返回值:tuple
-
索引
符号: [index] 格式:tuple[index] 返回值:object
-
切片
符号: [::] 格式:tuple[index1:index2:num] 返回值:tuple
-
成员检测
符号: in 格式: object in tuple 返回值:bool
2. 元组的序列操作
-
长度
格式:len(tuple) 返回值:int
-
最大值
格式:max(tuple) 返回值:int
注:该函数只能用于纯数字的元组。
-
最小值
格式:min(tuple) 返回值:int
注:该函数只能用于纯数字的元组。
-
转换为元组
格式:tuple(序列) 返回值:tuple
3. 元组的遍历
-
使用for...in 遍历元组
格式:for variable in tuple: 使用variable 例如:tu1 = (1,2,3,) for i in tu1: print(i) >>> 1 >>> 2 >>> 3
-
使用while循环遍历元组
格式:variable = 0 while variable <len(tuple): 使用元组的元素(tuple[variable]) variable += 1 例如:tu1 = (1,2,3,) i = 0 while i < len(tu1): print(tu1[i]) i += 1 >>> 1 >>> 2 >>> 3
-
二级元组的遍历
1. 格式:for variable1 in tuple: for variable2 in variable1: 使用variable 例如:tu1 = ((1,2,3,),(4,5,6,),(7,8,9,),) for i in tu1: for j in i: print(j) #输出的结果j就是元组中小元组中的元素 2. 格式:for varialbe1,variable2,... in tuple: 直接使用variable1,variable2,... 例如:tu1 = ((1,2,3,),(4,5,6,),(7,8,9,),) for n1,n2,n3 in tu1: print(n1) >>> 1 >>> 4 >>> 7
注:方法2只能遍历同等长度的二级元组,由于元组和列表可以相互转换,因此上述遍历的元组中可以混合列表使用。
4. 元组的推导式
-
简单的元组推导式
格式:(variable for variable in tuple) 例如:tu1 = (1,2,3,4,5,) die = (i for i in tu1) print(die.__next__()) >>> 1 返回值:迭代器 #把原元组遍历完后生成一个迭代器
- 稍作修改的元组推导式 格式:(variable * 8 for variable in tuple) 例如:tu1 = (1,2,3,4,5,) die = (i*8 for i in tu1) print(die.next()) >>> 8 #对变量进行修改,可以是int和str类型,具体需根据元组元素的类型来选择不同的类型。
-
带判断条件的元组推导式
格式:(variable for variable in tuple if 条件表达式) 例如:tu1 = (‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,) die = (i*2 for i in tu1 if tu1.index(i) < 3) print(die.__next__()) >>> ‘aa‘ 返回值:迭代器
-
多个元组推导式
格式:(varialbe1*variable2 for variable1 in tuple1 for variable2 in tuple2) 例如:tu1 = (2,1,3,) tu2 = (‘a‘,‘b‘,‘c‘,‘d‘) die = (i*j for i in tu1 for j in tu2) print(die.__next__()) >>> ‘aa‘ 返回值:迭代器
-
带判断条件的多个元组推导式
格式:(variable1*variable2 for variable1 in tuple1 for variable2 in tuple2 if 条件表达式) 例如:tu1 = (3,1,2) tu2 = (‘a‘,‘b‘,‘c‘,‘d‘) die = (i*j for i in tu1 for j in tu2 if tu1.index(i)==tu2.index(j)) print(die.__next__()) >>> ‘aaa‘ 返回值:迭代器
注:由于元组和列表可以相互转换,因此上述推导式的元组中的元组可以混合列表使用,与列表推导式不同的就是返回值。列表推导式返回值为列表,元组推导式返回值为迭代器。
文章来自:http://www.cnblogs.com/single-boy/p/7353105.html