• python中zip函数


    zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。(在海豚实习时自己写了一个要用到zip的函数,那个例子非常代表性)

    示例1

    for i,j in zip(range(3),range(5)):
        print(zip(range(3),range(5)))
        print(i)
        print(j)
    
    
    xbwang@xbwang-desktop:~/Desktop$ python un.py 
    [(0, 0), (1, 1), (2, 2)]
    0
    0
    [(0, 0), (1, 1), (2, 2)]
    1
    1
    [(0, 0), (1, 1), (2, 2)]
    2
    2

    可以看到zip返回出来的还是一个tuple列表,print(i)和print(j)之所以返回的是一个一个的数,而不是tuple列表,就相当于你在一个tuple列表里面进行for循环,一样返回的是里面的元素

    示例2

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

    运行的结果是:

    [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

    示例3,在两个list长度不相等时的情况:

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

    运行的结果是:

    [(1, 4), (2, 5), (3, 6)]

    示例4

    >>> name=('jack','beginman','sony','pcky')
    >>> age=(2001,2003,2005,2000)
    >>> for a,n in zip(name,age):
        print a,n
    
    输出:
    jack 2001
    beginman 2003
    sony 2005
    pcky 2000

    示例5,只有一个list的情况:

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

    运行的结果是:

    [(1,), (2,), (3,)]

    特别注意:在文件读写中也可以运用zip函数

    f = open('/home/xbwang/Desktop/id_title','r')
    f1 = open('/home/xbwang/Desktop/res','r')
    f2 = open('/home/xbwang/Desktop/pos','r')
    f3 = open('/home/xbwang/Desktop/cut_pos1','a')
    for line,line1,line2 in zip(f,f1,f2):
        line = line[:-1]
        line1 = line1[:-1]
        f3.write(line+'     '+line1+'     '+line2)

    这是我自己写的一个将3个文件的内容按照一定规则排列写到一个文件里。

    查询这个,经常会去查询多变量的for循环

  • 相关阅读:
    google
    学习Linux第六天
    对比教学大纲
    周 记
    《世界是数字的》读后感
    《我是一只IT小小鸟》读后感
    前端小知识
    JavaScript 执行机制
    执行栈和任务队列
    支付宝前端员工培训手册
  • 原文地址:https://www.cnblogs.com/ymjyqsx/p/6113495.html
Copyright © 2020-2023  润新知