1. 窗口迭代器:itertools.islice(iterable, [start,] stop [, step])截取iterable从start开始,stop结束

    第一个参数为可迭代数据

    例:itertools.islice([0,1,2,3,4,5,6,7,8,9],5,None)将生成一个从5开始的迭代器

  2. 往返式的迭代器itertools.tee(iterable,n)

    例:itertools.tee('abcdefgh',3)将生成3个迭代器

  3. uniq迭代器itertools.groupby(iterable[,keyfunc]),对重复元素进行分组,只要他们是相邻的,还可以提供一个函数执行元素的比较

    例:a=itertools.groupby('geeeeeet uuuuuuupppppp')
    for i,j in a:
        print i,len(list(j))

    结果:

    g 1
    e 6
    t 1
      1
    u 7
    p 6

  4. itertools.chain(*iterables)创建一个在第一个可迭代的对象上迭代的迭代器,然后继续下一个,以此类推

    例:a=itertools.chain('ab','12','df')
    for i in a:
        print i

    结果:

    a
    b
    1
    2
    d
    f

  5. itertools.count(start=0, step=1)返回一个给出连续整数的迭代器,没有结束,n未给出时从0开始

    例:a=itertools.count(10)

    for i in a:

        print i

    从10开始打印数字步长为1

  6. itertools.cycle(iterable)在可迭代对象的每个元素之上迭代,然后重新开始,无限次的重复

  7. itertools.droopwhile(predicate,iterable)只要断言predicate为真,就从可迭代对象中删除每个元素,当断言为假时则输出剩余元素。

  8. itertools.ifilter(predicate,iterable)近似于内建函数filter

  9. itertools.ifilterfalse(predicate,iterable)与ifilter类似,但是在断言为假时执行迭代

  10. imap(function,*iterables)与map类似,不过他将在多个可迭代对象上工作

  11. izip(*iterables)和izip类似,不过他将返回一个迭代器

  12. repeat(object[,times])返回一个迭代器,该迭代器在每次调用时返回object,运行times次,不指定则运行无限次

  13. starmap(function,iterable)和imap类似,他将可迭代参数作为星号参数传递给function

  14. takewhile(predicate,iterable)从可迭代对象返回元素,当predicate返回假时停止