• Python3-2020-测试开发-7- 元组tuple


    一、元组的特点

    """元组的总结:"""
    '''
    元组的核心特点:不可变序列
    元组的访问和处理速度要比列表快
    与整数和字符串一样,元组可作为字典的键,列表永远不可以作为字典的键使用
    '''

    二、元组的创建

    2.1 普通创建

    # 1. 普通创建
    a1 = (10,20,30)
    print(type(a1))    # <class 'tuple'>
    print(a1)          # (10, 20, 30)
    
    a2 = 10,20,30
    print(type(a2))    # <class 'tuple'>
    print(a2)          # (10, 20, 30)
    
    a3 = (20)
    a4 = (30,)
    a5 = 40,
    print(type(a3))   # <class 'int'>
    print(type(a4))   # <class 'tuple'>
    print(type(a5))   # <class 'tuple'>

    2.2 通过tuple创建元组

    # 2. 通过tuple创建元组
    b1 = tuple("abcd")
    print(b1)                      # ('a', 'b', 'c', 'd')
    b2 = tuple(range(3))
    print(b2)                      # (0, 1, 2)
    b3 = tuple([11,22,33,44])
    print(b3)                      # (11, 22, 33, 44)

    三、元组的访问

    3.1 元组的访问

    # 3.1 元组的访问
    c1 = (20,10,30,40)
    # 3.1 直接访问
    print(c1[1]) # 10
    # 切片
    print(c1[1:3]) # (10, 30)
    # 排序
    print(c1[::-1])  # (40, 30, 10, 20)
    # sorted()    list.sort()是修改原列表的对象,故tuple没有sort方法,
    # sorted(tuple)是将tuple转化成有序列表
    print(sorted(c1))  # [10, 20, 30, 40]

    3.2 zip()方法

    # 3.2 zip() 将多个列表对应位置的元素合并成为元组,并返回给这个zip对象
    
    x = [10,20,30,40]
    y = [11,22,33,44]
    z = [100,200,300,400]
    
    m = zip(x,y,z)
    print(m)
    print(list(m))
    
    
    #输出:
    
    
    
    """
    <zip object at 0x0000027B8A680108>
    [(10, 11, 100), (20, 22, 200), (30, 33, 300), (40, 44, 400)]
    """

    3.3 生成器推导式创建元组

    '''
    3.3. 生成器推导式创建元组
    生成器推导式与列表推导式类似,只是生成器推导式使用小括号,
    列表推导式直接生成列表对象,生成器推导式生成的不是列表也不是元组,
    而是一个生成器对象,我们可以通过生成器对象,转化成为列表或元组,也可以使用生成器对象的__next__()
    方法进行遍历,或者直接作为迭代器来使用,不管用什么元素,元素访问结束后,如果需要重新访问其中的元素,必须重新创建该生成器对象
    '''
    s = (x*2 for x in range(5))
    
    print(s)
    
    print(tuple(s))
    print(list(s))    # 元素只能访问一次,第二次访问时就为空了,需要再次生成一次
    
    s = (x*2 for x in range(5))
    print(list(s))
    
    s1 = (x*2 for x in range(5))
    print(s1.__next__())   # 0
    print(s1.__next__())   # 2
    print(s1.__next__())   # 4
    print(s1.__next__())   # 6
    print(s1.__next__())   # 8
    print(s1.__next__())   # 异常 : StopIteration
    
    
    """
    <generator object <genexpr> at 0x000001CBF27115C8>
    (0, 2, 4, 6, 8)
    []
    [0, 2, 4, 6, 8]
    0
    2
    4
    6
    8
    """
  • 相关阅读:
    Sudoku Solver [LeetCode]
    Populating Next Right Pointers in Each Node [LeetCode]
    Binary Tree Level Order Traversal [LeetCode]
    Clone Graph [LeetCode]
    Merge k Sorted Lists [LeetCode]
    Combinations [LeetCode]
    021 面向对象 一
    给图片加点料
    质数
    ex10 找出藏在字符串中的“密码”
  • 原文地址:https://www.cnblogs.com/chushujin/p/12836535.html
Copyright © 2020-2023  润新知