窗口迭代器:itertools.islice(iterable, [start,] stop [, step])截取iterable从start开始,stop结束
第一个参数为可迭代数据
例:itertools.islice([0,1,2,3,4,5,6,7,8,9],5,None)将生成一个从5开始的迭代器
往返式的迭代器itertools.tee(iterable,n)
例:itertools.tee('abcdefgh',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 6itertools.chain(*iterables)创建一个在第一个可迭代的对象上迭代的迭代器,然后继续下一个,以此类推
例:a=itertools.chain('ab','12','df')
for i in a:
print i结果:
a
b
1
2
d
fitertools.count(start=0, step=1)返回一个给出连续整数的迭代器,没有结束,n未给出时从0开始
例:a=itertools.count(10)
for i in a:
print i
从10开始打印数字步长为1
itertools.cycle(iterable)在可迭代对象的每个元素之上迭代,然后重新开始,无限次的重复
itertools.droopwhile(predicate,iterable)只要断言predicate为真,就从可迭代对象中删除每个元素,当断言为假时则输出剩余元素。
itertools.ifilter(predicate,iterable)近似于内建函数filter
itertools.ifilterfalse(predicate,iterable)与ifilter类似,但是在断言为假时执行迭代
imap(function,*iterables)与map类似,不过他将在多个可迭代对象上工作
izip(*iterables)和izip类似,不过他将返回一个迭代器
repeat(object[,times])返回一个迭代器,该迭代器在每次调用时返回object,运行times次,不指定则运行无限次
starmap(function,iterable)和imap类似,他将可迭代参数作为星号参数传递给function
takewhile(predicate,iterable)从可迭代对象返回元素,当predicate返回假时停止
转载于:https://blog.51cto.com/zhoubin50/1736739