• Python 函数整理


    zip 函数

    1. 以多个可迭代对象作为参数,把对象中的元素打包成一个个元组

    [1, 2], [3, 4] --> [1, 3], [2, 4]

    2. 如果 可迭代对象长度不一致,以短为准

    [1, 2], [3, 4, 5] --> [1, 3], [2, 4]

    3. 利用 * 号操作符时,输入为 单个可迭代对象,作用是把 可迭代对象中各个元素进行解压,然后再打包

    *['abc', [1, 2, 3]] --> ('a', 1), ('b', 2), ('c', 3)

    注意 此时 可迭代对象中的 元素也必须 可迭代

    4. 返回一个对象,可用 list() 转换为列表,这样可节省内存    【Python2 直接返回 list】

    x = zip([1, 2], [3, 4])
    print(x, type(x))   # <zip object at 0x0000000003129508> <class 'zip'>
    list(x)             # 转换为列表

    示例代码

    ##### 不带 *,参数为 多个可迭代对象
    ### 长度一致
    for j in zip([1, 2], [3, 4]):
        print(j)
    # (1, 3)
    # (2, 4)
    
    ### 长度不一致,以短为准
    for j in zip([1, 2], [3, 4, 5]):
        print(j)
    # (1, 3)
    # (2, 4)
    
    ### 也可以是多个 list
    for j in zip([1, 2], [3, 4, 5], [7, 8]):
        print(j)
    # (1, 3, 7)
    # (2, 4, 8)
    
    ##### 带 *,参数为 单个可迭代对象
    for i in zip(['flss', 'flsdfs', 'flpposfs']):   # 不带 *,便于对比
        print(i)
    # ('flss',)
    # ('flsdfs',)
    # ('flpposfs',)
    
    for i in zip(*['flss', 'flsdfs', 'flpposfs']):  # 带 *,list
        print(i)
    # ('f', 'f', 'f')       本来是个 list,把每个元素拆开,对应位置合并,拆开操作理解为解压
    # ('l', 'l', 'l')
    # ('s', 's', 'p')
    # ('s', 'd', 'p')
    
    for i in zip(*('flss', 'flsdfs', 'flpposfs')):  # 带 *,tuple
        print(i)
    # ('f', 'f', 'f')
    # ('l', 'l', 'l')
    # ('s', 's', 'p')
    # ('s', 'd', 'p')
    
    ### 可迭代对象的元素必须可迭代
    for i in zip(*('abc', [1, 2, 3])):  # 可迭代对象中的元素必须可迭代
        print(i)
    # ('a', 1)
    # ('b', 2)
    # ('c', 3)
    
    for i in zip(*[1, 2, 3]):       # TypeError: zip argument #1 must support iteration 不可迭代报错
        print(i)

    参考资料:

    https://www.runoob.com/python3/python3-func-zip.html  Python3 zip() 函数

  • 相关阅读:
    vmware12中安装MAC OS X 10.10
    AOL search
    [python]错误检测及异常处理try-except
    [推荐]
    [python]打开文件操作open用法
    MAC使用小技巧
    [推荐]
    [python]python中的if, while, for
    [python]python字典
    [python]python列表、元组
  • 原文地址:https://www.cnblogs.com/yanshw/p/15074906.html
Copyright © 2020-2023  润新知