python内置模块itertools

1 itertools

itertools提供了许多的函数来创建各种各样的迭代器,以便用于高效的循环和迭代操作

2 itertools函数

itertools.count(start=0, step=1)

image
执行
image

itertools.cycle(iterable)

image
如上,会不断循环输出11-14

itertools.repeat(object[, times])

image
执行
image

tertools.accumulate(iterable[, func, *, initial=None])

image
执行
image

itertools.chain(*iterables)

image

image
执行
image

itertools.compress(data, selectors)

创建一个迭代器,它返回 data 中经 selectors 真值测试为 True 的元素。迭代器在两者较短的长度处停止
image
执行
image

还有其他许许多多的函数
image

image

itertools.product(*iterables, repeat=1)

大概是iterables中所有所有item之间,所有可能性的排列组合
image
执行结果

[('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')]

posted @ 2023-05-17 21:56  工作手记  阅读(33)  评论(0编辑  收藏  举报