码迷,mamicode.com
首页 > 编程语言 > 详细

Python中tuple的功能介绍

时间:2017-08-13 14:11:25      阅读:2838      评论:0      收藏:0      [点我收藏+]

标签:迭代器   space   ons   attribute   bottom   功能   value   round   加法   

                                           Tuple的功能介绍

1. 元组的两种方法

1. 元组的内置方法

  1. 两个元组的相加

    格式:x.__add__(y)等同于x+y
    例如:tu1 = (1,2,3,)
         print(tu1.__add__((2,3,4,)))
     >>> (1, 2, 3, 2, 3, 4)
    返回值:tuple
    #只能是两个元组相加,生成一个新元组
    
  2. 判断是否是包含关系

    格式:x.__contains__(y)等同于y in x
    例如:tu1 = (1,2,3,)
         print(tu1.__contains__(3))
     >>> True
    返回值:bool
    #上述的y可以是任意对象object
    
  3. 判断两个元组是否相等

    格式:x.__eq__(y)等同于x==y
    例如:tu1 = (1,2,3,)
         print(tu1.__eq__((2,3,)))
     >>> False
    返回值:bool
    #上述的y只能是元组
    
  4. 大于等于

    格式:x.__ge__(y)等同于x>=y
    例如:tu1 = (1,2,3,)
         print(tu1.__ge__((2,3,)))
     >>> False
    返回值:bool
    #上述的y只能是元组
    

    注:两个元组判断大小主要依据为元组的第一个元素的大小。

  5. 访问属性

    格式:x.__getattribute__(self,name)
    返回值:str
    
  6. 取出指定索引的值

    格式:x.__getitem__(index)等同于tuple[index]
    例如:tu1 = (1,2,3,)
         print(tu1.__getitem___(2))
     >>> 3
    返回值:object
    
  7. 元组元素化

    格式:x.__getnewargs__()
    例如:tu1 = (1,2,3,)
         print(tu1.__getnewargs__())
     >>> ((1,2,3,),)
    返回值:tuple
    #把原元组作为一个新元组的一个元素
    
  8. 大于

    格式:x.__gt__(y)等同于x>y
    例如:tu1 = (1,2,3,)
         print(tu1.__gt__((2,3,)))
     >>> False
    返回值:bool
    #上述的y只能是元组
    

    注:两个元组判断大小主要依据为元组的第一个元素的大小。

  9. 哈希化

    格式:x.__hash__()等同于hash(x)
    例如:tu1 = (1,2,3,)
         print(tu1.__hash__())
     >>> 2528502973977326415
    返回值:int
    
  10. 迭代器

    格式:x.__iter__()等同于iter(x)
    例如:tu1 = (1,2,3,)
         die = tu1.__iter__()
         print(die.__next__())
     >>> 1
    返回值:迭代器
    
  11. 小于等于

    格式:x.__le__(y)等同于x<=y
    例如:tu1 = (1,2,3,)
         print(tu1.__le__((2,3,)))
     >>> True
    返回值:bool
    #上述的y只能是元组
    

    注:两个元组判断大小主要依据为元组的第一个元素的大小。

  12. 长度

    格式:x.__len__()等同于len(x)
    例如:tu1 = (1,2,3,)
         print(tu1.__len__())
     >>> 3
    返回值:int
    
  13. 小于

    格式:x.__lt__(y)等同于x<y
    例如:tu1 = (1,2,3,)
         print(tu1.__lt__((2,3,)))
     >>> True
    返回值:bool
    #上述的y只能是元组
    

    注:两个元组判断大小主要依据为元组的第一个元素的大小。

  14. 相乘(复制)

    格式:x.__mul__(num)等同于x*num
    例如:tu1 = (1,2,3,)
         print(tu1.__mul__(2))
     >>> (1,2,3,1,2,3)
    返回值:tuple
    
  15. 不等于 格式:x.ne(y)等同于x!=y 例如:tu1 = (1,2,3,) print(tu1.ne((2,3,))) >>> True 返回值:bool #上述的y只能是元组
  16. 创建新元组

    格式:x.__new__(tuple)
    例如:tu1 = (1,2,3,)
         print(tu1.__new__(tuple))
     >>> ()
    返回值:tuple
    
  17. 内置转换方法

    格式:x.__repr__(self)
    返回值:tuple
    
  18. 右→左 相乘(复制)

    格式:x.__rmul__(num)等同于num*x
    例如:tu1 = (1,2,3,)
         print(tu1.__rmul__(2))
     >>> (1,2,3,1,2,3)
    返回值:tuple
    

2. 常用方法

  1. 计数

    格式:x.count(value)
    例如:tu1 = (1,2,3,1,2,3,)
         print(tu1.count(2))
     >>> 2
    返回值:int
    
  2. 索引

    格式:x.index(value,start,end)
    例如:tu1 = (1,2,3,1,2,3,)
         print(tu1.index(2,1,4))
     >>> 1
    返回值:int
    #不指定范围时,默认全元组搜索
    

2. 元组操作

1. 元组的基础操作

  1. 加法

    符号: +
    格式:tuple1 + tuple2
    例如:tu1 = (1,2,3,)
         tu2 = (‘a‘,‘b‘,)
         print(tu1+tu2)
     >>> (1,2,3,‘a‘,‘b‘)
    返回值:tuple
    
  2. 乘法(复制)

    符号: *
    格式:tuple1 * num
    返回值:tuple
    
  3. 索引

    符号: [index]
    格式:tuple[index]
    返回值:object
    
  4. 切片

    符号: [::]
    格式:tuple[index1:index2:num]
    返回值:tuple
    
  5. 成员检测

    符号: in
    格式: object in tuple
    返回值:bool
    

2. 元组的序列操作

  1. 长度

    格式:len(tuple)
    返回值:int
    
  2. 最大值

    格式:max(tuple)
    返回值:int
    

    注:该函数只能用于纯数字的元组。

  3. 最小值

    格式:min(tuple)
    返回值:int
    

    注:该函数只能用于纯数字的元组。

  4. 转换为元组

    格式:tuple(序列)
    返回值:tuple     
    

3. 元组的遍历

  1. 使用for...in 遍历元组

    格式:for variable in tuple:
             使用variable
    例如:tu1 = (1,2,3,)
         for i in tu1:
             print(i)
     >>> 1
     >>> 2
     >>> 3
    
  2. 使用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
    
  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. 元组的推导式

  1. 简单的元组推导式

    格式:(variable for variable in tuple)
    例如:tu1 = (1,2,3,4,5,)
         die = (i for i in tu1)
         print(die.__next__())
     >>> 1
    返回值:迭代器
    #把原元组遍历完后生成一个迭代器
    
  2. 稍作修改的元组推导式 格式:(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类型,具体需根据元组元素的类型来选择不同的类型。
  3. 带判断条件的元组推导式

    格式:(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‘
    返回值:迭代器 
    
  4. 多个元组推导式

    格式:(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‘
    返回值:迭代器
    
  5. 带判断条件的多个元组推导式

    格式:(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‘
    返回值:迭代器
    

    注:由于元组和列表可以相互转换,因此上述推导式的元组中的元组可以混合列表使用,与列表推导式不同的就是返回值。列表推导式返回值为列表,元组推导式返回值为迭代器。

Python中tuple的功能介绍

标签:迭代器   space   ons   attribute   bottom   功能   value   round   加法   

原文地址:http://www.cnblogs.com/single-boy/p/7353105.html

(0)
(2)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!