• zip


    一、说明

    zip([iterable, …])

    参数iterable为可迭代的对象,并且可以有多个参数。

    该函数返回一个以元组为元素的对象,其中第 i 个元组包含每个参数序列的第 i 个元素。

    返回的对象长度被截断为最短的参数序列的长度。

    只有一个序列参数时,它返回一个1元组的对象。没有参数时,它返回一个空的对象。

    我们可以使用 list() 转换来输出列表。

    pyhton2 和python3不同。因为不适用Python2。异同点不再描述。

    二、创建

    list_1 = list('hello')
    list_2 = list('world')
    list_3 = list('python')
    tuple_1 = tuple(list_1)
    list_4 = []
    
    # 因为zip对象无法打印出来。所以会把zip转化为list.
    zip_1 = list(zip(list_1, list_2))
    zip_2 = list(zip(list_1, list_3))                               # 各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同
    zip_3 = list(zip(list_1, list_4))                               # 如果存在空的迭代器,返回空列表
    zip_4 = list(zip(list_1, tuple_1, list_2, list_3))              # 迭代器可以是各种形式的,也可以是多个
    zip_5 = zip(list_1, list_3)
    list_5, list_6 = zip(*zip_5)                                    # 可以理解为解压
    
    print('zip_1:', zip_1)
    print('zip_2:', zip_2)
    print('zip_3:', zip_3)
    print('zip_4:', zip_4)
    print('list_5:', list_5)
    print('list_6:', list_6)

    三、遍历

    list_1 = list('hello')
    list_2 = list('world')
    
    for i in zip(list_1, list_2):
        print(i)
    print('**'*20)
    for hello, world in zip(list_1, list_2):
        print(hello, world)

    四、转化

     

    list_a = list('hello')
    list_b = list('world')
    zip_1 = zip(list_a, list_b)
    
    list_1 = list(zip_1)
    list_2 = list(zip(list_a, list_b))     # 注意和list_1结果一致
    tuple_1 = tuple(zip_1)
    tuple_2 = tuple(zip(list_a, list_b))   # 注意和tuple_1结果不一致
    dict_1 = dict(zip_1)
    dict_2 = dict(zip(list_a, list_b))     # 注意和dict_1结果不一致
    
    print('list_1: ', list_1)
    print('list_2: ', list_2)
    print('tuple_1: ', tuple_1)
    print('tuple_2: ', tuple_2)
    print('dict_1: ', dict_1)
    print('dict_2: ', dict_2)

     五、补充

    itertools模块中的zip_longest。返回的对象长度被截断为最长的参数序列的长度。

    import itertools
    
    list_1 = list('hello')
    list_2 = list('world')
    list_3 = list('python')
    
    zip_1 = list(itertools.zip_longest(list_1, list_3))
    print(zip_1)

     

  • 相关阅读:
    Flex 和JavaScript 交互(带参)
    dos创建快捷方式
    IE的onunload事件里调用DWR
    使用VS2008开发OPC客户端程序
    实时库GEHistorian的一些问题记录
    SQL SERVER中,把一个表中的数据导入到另一个表中
    SQLSERVER 触发器
    SqlServer数据复制出现的问题与处理
    了解Log.Debug 或 log4net
    VS2008应用程序部署时将Framework3.5打包到安装包中
  • 原文地址:https://www.cnblogs.com/qianslup/p/12176273.html
Copyright © 2020-2023  润新知