• python itertools的使用(转)


    1. chain的使用

    import itertools  
    listone = ['a','b','c']  
    listtwo = ['11','22','abc']  
    for item in  itertools.chain(listone,listtwo):  
        print item  
    
    输出: a b c 11 22 abc
    

    2. count的使用

    i = 0  
    for item in itertools.count(100):  
        if i>10:  
            break  
        print item,  
        i = i+1  
    功能:从100开始数10个数,cout返回一个无界的迭代器,如果引入一个计数I,可以让它计数10次。。
    输出:100 101 102 103 104 105 106 107 108 109 110
    

    3.cycle的使用

    import itertools  
    listone = ['a','b','c']  
    listtwo = ['11','22','abc']  
      
    for item in itertools.cycle(listone):  
        print item,  
    功能:从列表中取元素,到列表尾后再从头取...
    无限循环,因为cycle生成的是一个无界的失代器
    输出:a b c a b c a b c a b c a b c a b c a b c a b c a b c...
    

    4.ifilter的使用,ifilter(fun,iterator)返回一个可以让fun返回True的迭代器

    import itertools  
    
    def funLargeFive(x):  
        if x > 5:  
            return True  
          
    for item in itertools.ifilter(funLargeFive,range(-10,10)):  
        print item,  
    结果:6 7 8 9
    

    5. imap的使用,imap(fun,iterator)返回一个迭代器,对iterator中的每个项目调用fun

    import itertools  
    
    listthree = [1,2,3]  
    def funAddFive(x):  
        return x + 5  
    for item in itertools.imap(funAddFive,listthree):  
        print item,  
    返回:6 7 8  对listthree中的元素每个加了5后返回给迭代器
    

    6.islice的使用,islice()(seq, [start,] stop [, step])

    import itertools  
    listone = ['a','b','c']  
    listtwo = ['11','22','abc']  
    listthree = listone + listtwo  
    for item in itertools.islice(listthree,3,5):  
        print item,  
    功能:返回迭代器,其中的项目来自 将seq,从start开始,到stop结束,以step步长切割后
    打印出:11 22
    

    7.izip的使用,izip(*iterator)

    import itertools  
    listone = ['a','b','c']  
    listtwo = ['11','22','abc']  
    listthree = listone + listtwo  
    for item in itertools.izip(listone,listtwo):  
        print item,  
    结果:('a', '11') ('b', '22') ('c', 'abc')
    功能:返回迭代器,项目是元组,元组来自*iterator的组合
    

    8. repeate,repeate(elem [,n])

    import itertools  
    listone = ['a','b','c']  
    for item in itertools.repeat(listone,3):  
        print item,  
    
    结果:['a', 'b', 'c'] ['a', 'b', 'c'] ['a', 'b', 'c']
    
  • 相关阅读:
    java进阶(36)--IO和Properties联合使用(配置文件)
    java进阶(34)--File类、目录复制
    java进阶(33)--IO流
    java进阶(32)--Collections工具类
    java进阶(31)--TreeSet集合、TreeMap集合、自平衡二叉树
    解决Excel打开空白或慢的问题
    CCS
    CCS
    CCS
    CCS
  • 原文地址:https://www.cnblogs.com/nyist-xsk/p/7475364.html
Copyright © 2020-2023  润新知