python标准库之函数式编程(1)
itertools 模块包含了一系列用来产生不同类型迭代器的函数或类,这些函数的返回都是一个迭代器,我们可以通过 for 循环来遍历取值,也可以使用 next() 来取值。
一、无限迭代器
1、整数迭代器
itertools.count() 接收两个参数,第一个参数指定开始值,默认为 0,第二个参数指定步长,默认为 1
1 | import itertools |
2、元素迭代器
1 | import itertools |
3、次数迭代器
1 | import itertools |
二、有限迭代器
1、锁链迭代器
itertools.chain 接收多个可迭代对象作为参数,将它们『连接』起来,作为一个新的迭代器返回。
1 | import itertools |
2、切片迭代器
1 | import itertools |
3、分组迭代器
itertools.groupby 用于对序列进行分组,默认会将连续相同项进行分组。
1 | import itertools |
4、元素筛选迭代器
1 | import itertools |
5、条件过滤迭代器
(1)无中断的排他条件过滤
1 | import itertools |
(2)有中断的排他条件过滤
1 | import itertools |
(3)有中断的选中条件过滤
1 | import itertools |
5、元组迭代器
1 | import itertools |
三、组合生成器
1、序列的笛卡尔积
1 | import itertools |
2、序列的组合
(1)不包含自身元素
1 | import itertools |
(2)可包含自身元素
1 | import itertools |
3、元素全排列(忽略序列次序)
1 | import itertools |