首页 > 代码库 > itertools

itertools

itertools是python内置的一个迭代器工具模块,提供很多方法,创建各种各样的迭代器。
python文档中写着,该模块式python2.3引入的,基本常用的python的解释器都是python2.4之后的。所以,基本不会遇上没有提供支持的情况。
 
下面主要介绍常用的三个:
islice():
一个迭代器的切片函数,用于抽取一个迭代器的特定位置的数据。
 
 
tee():
从一个迭代器上,放回n个独立的迭代器。n默认为2,所以未传n值时,放回的是两个迭代器。
把n设为1的话,会放回一个迭代器,但是是放在一个元组中的。
 
groupby():
对迭代器的重复元素分组,一个例子:
get uuuuuuup
groupby之后就是:
1g1e1t1" "7u1p
下面是一个解压和压缩的例子:
 1 from itertools import groupby
 2 def compress(data):
 3  return ((len(list(group)),name)
 4   for name,group in groupby(data))
 5 def decompress(data):
 6  return (car*size for size,car in data)
 7 if __name__ == __main__:
 8  l=list(compress(get uuuuuuuuuuuuuuuup))
 9  print l
10  print ‘‘.join(decompress(l))