Python的zip函数

Python 2018-01-18

  • zip函数:用于将多个列表中元素重新组合为元组并返回包含这些元组的zip对象。
  • 示例一:

    x = [1, 2, 3]
       
    y = [4, 5, 6]
       
    z = [7, 8, 9]
       
    xyz = zip(x, y, z)
       
    print(list(xyz))

    运行的结果是:

    [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
  • 示例二:

    x = [1, 2, 3]
       
    y = [4, 5, 6, 7]
       
    xy = zip(x, y)
       
    print(list(xy))

    运行的结果是:

    [(1, 4), (2, 5), (3, 6)]
  • 示例三:

    x = [1, 2, 3]
       
    x = zip(x)
       
    print(list(x))

    运行的结果是:

    [(1,), (2,), (3,)]
  • 示例四:

    x = zip()
       
    print(list(x))

    运行的结果是:

    []
  • 示例五:

    x = [1, 2, 3]
       
    y = [4, 5, 6]
       
    z = [7, 8, 9]
    
    xyz = zip(x, y, z)
       
    u = zip(*xyz)
       
    print(list(u))

    运行的结果是:

    [(1, 2, 3), (4, 5, 6), (7, 8, 9)]
    • 一般认为这是一个unzip的过程,它的运行机制是这样的:
    • 在运行zip(*xyz)之前,xyz的值是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
    • 那么,zip(*xyz) 等价于 zip((1, 4, 7), (2, 5, 8), (3, 6, 9))
    • 所以,运行结果是:[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
  • 示例六:

    x = [1, 2, 3]
    r = zip(* [x] * 3)
    print(list([x]))
    print(list([x]*3))
    print(list(r))

    运行的结果是:

    [[1, 2, 3]]
    [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
    [(1, 1, 1), (2, 2, 2), (3, 3, 3)]
    • 它的运行机制是这样的:
    • [x]生成一个列表的列表,它只有一个元素x
    • [x] * 3生成一个列表的列表,它有3个元素,[x, x, x]
    • zip( [x] 3)的意思就明确了,zip(x, x, x)

原文出处:https://www.cnblogs.com/frydsh/archive/2012/07/10/2585370.html


每一个成功的背后都有无数个无人知晓的黑夜。

因为

夜晚,是超越对手的最佳时机。

===================== 码农1024 =====================#蔺光岭#


本文由 蔺光岭 创作,采用 知识共享署名 4.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论