python内置模块itertools
1 itertools
itertools提供了许多的函数来创建各种各样的迭代器,以便用于高效的循环和迭代操作
2 itertools函数
itertools.count(start=0, step=1)
执行
itertools.cycle(iterable)
如上,会不断循环输出11-14
itertools.repeat(object[, times])
执行
tertools.accumulate(iterable[, func, *, initial=None])
执行
itertools.chain(*iterables)
执行
itertools.compress(data, selectors)
创建一个迭代器,它返回 data 中经 selectors 真值测试为 True 的元素。迭代器在两者较短的长度处停止
执行
还有其他许许多多的函数
itertools.product(*iterables, repeat=1)
大概是iterables中所有所有item之间,所有可能性的排列组合
执行结果
[('a',), ('b',)]
[('a', 'a'), ('a', 'b'), ('b', 'a'), ('b', 'b')]
[('a', 'a', 'a'), ('a', 'a', 'b'), ('a', 'b', 'a'), ('a', 'b', 'b'), ('b', 'a', 'a'), ('b', 'a', 'b'), ('b', 'b', 'a'), ('b', 'b', 'b')]
[('a', 'a', 'a', 'a'), ('a', 'a', 'a', 'b'), ('a', 'a', 'b', 'a'), ('a', 'a', 'b', 'b'), ('a', 'b', 'a', 'a'), ('a', 'b', 'a', 'b'), ('a', 'b', 'b', 'a'), ('a', 'b', 'b', 'b'), ('b', 'a', 'a', 'a'), ('b', 'a', 'a', 'b'), ('b', 'a', 'b', 'a'), ('b', 'a', 'b', 'b'), ('b', 'b', 'a', 'a'), ('b', 'b', 'a', 'b'), ('b', 'b', 'b', 'a'), ('b', 'b', 'b', 'b')]