zoukankan      html  css  js  c++  java
  • 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循环

  • 相关阅读:
    HBase Coprocessor 剖析与编程实践
    图数据库实践系列 (一)Neo4J简介与安装
    BootStrap入门教程 (三)
    图数据库实践系列 (三)Neo4j Spatial的REST集成
    BootStrap入门教程 (二)
    R与GIS实践系列Shapefile导入与地图显示
    空间分析读书笔记
    BootStrap入门教程 (四)
    Java并发之线程池的使用浅析
    RSA详解
  • 原文地址:https://www.cnblogs.com/ymjyqsx/p/6113495.html
Copyright © 2011-2022 走看看