itertools模块-高效的迭代器操作

http://funhacks.net/2017/02/13/itertools/#product

itertools 模块提供的迭代器函数有以下几种类型:

  • 无限迭代器: 生成一个无限序列, 比如自然数序列: 1, 2, 3, 4, …
  • 有限迭代器: 接受一个或多个序列作为参数, 进行组合, 分组, 过滤等操作
  • 组合生成器: 序列的排列, 组合, 求序列的笛卡尔积等等

无线迭代器

优先迭代器

组合生成器

product

product 用于求多个可迭代对象的笛卡尔积, 它跟嵌套的 for 循环等价, 其一般使用形式如下:

1
product(iter1, iter2, ..., iterN, [repeat=1])

其中, repeat是一个关键字参数, 用于指定重复生成序列的次数