Python中中itertools模块用法详解模块用法详解
本文实例讲述了Python中itertools模块用法,分享给大家供大家参考。具体分析如下:
一般来说,itertools模块包含创建有效迭代器的函数,可以用各种方式对数据进行循环操作,此模块中的所有函数返回的迭代
器都可以与for循环语句以及其他包含迭代器(如生成器和生成器表达式)的函数联合使用。
chain(iter1, iter2, …, iterN):
给出一组迭代器(iter1, iter2, …, iterN),此函数创建一个新迭代器来将所有的迭代器链接起来,返回的迭代器从iter1开始生成
项,知道iter1被用完,然后从iter2生成项,这一过程会持续到iterN中所有的项都被用完。
from itertools import chain
test = chain('AB', 'CDE', 'F')
for el in test:
print el
A
B
C
D
E
F
chain.from_iterable(iterables):
一个备用链构造函数,其中的iterables是一个迭代变量,生成迭代序列,此操作的结果与以下生成器代码片段生成的结果相
同:
>>> def f(iterables):
for x in iterables:
for y in x:
yield y
>>> test = f('ABCDEF')
>>> test.next()
'A'
>>> from itertools import chain
>>> test = chain.from_iterable('ABCDEF')
>>> test.next()
'A'
combinations(iterable, r):
创建一个迭代器,返回iterable中所有长度为r的子序列,返回的子序列中的项按输入iterable中的顺序排序:
>>> from itertools import combinations
>>> test = combinations([1,2,3,4], 2)
>>> for el in test:
print el
(1, 2)
(1, 3)
(1, 4)
(2, 3)
(2, 4)
(3, 4)
count([n]):
创建一个迭代器,生成从n开始的连续整数,如果忽略n,则从0开始计算(注意:此迭代器不支持长整数),如果超出了
sys.maxint,计数器将溢出并继续从-sys.maxint-1开始计算。
cycle(iterable):
创建一个迭代器,对iterable中的元素反复执行循环操作,内部会生成iterable中的元素的一个副本,此副本用于返回循环中的
重复项。
dropwhile(predicate, iterable):