itertools模块实现一系列 iterator ,这些迭代器受到APL,Haskell和SML的启发。为了适用于Python,它们都被重新写过。
无穷迭代器:
迭代器 | 实参 | 结果 | 示例 |
---|---|---|---|
start, [step] | start, start+step, start+2*step, ... |
| |
p | p0, p1, ... plast, p0, p1, ... |
| |
elem [,n] | elem, elem, elem, ... 重复无限次或n次 |
|
根据最短输入序列长度停止的迭代器:
迭代器 | 实参 | 结果 | 示例 |
---|---|---|---|
p [,func] | p0, p0+p1, p0+p1+p2, ... |
| |
p, q, ... | p0, p1, ... plast, q0, q1, ... |
| |
iterable -- 可迭代对象 | p0, p1, ... plast, q0, q1, ... |
| |
data, selectors | (d[0] if s[0]), (d[1] if s[1]), ... |
| |
pred, seq | seq[n], seq[n+1], ... 从pred首次真值测试失败开始 |
| |
pred, seq | seq中pred(x)为假值的元素,x是seq中的元素。 |
| |
iterable[, key] | 根据key(v)值分组的迭代器 | ||
seq, [start,] stop [, step] | seq[start:stop:step]中的元素 |
| |
iterable -- 可迭代对象 | (p[0], p[1]), (p[1], p[2]) |
| |
func, seq | func(*seq[0]), func(*seq[1]), ... |
| |
pred, seq | seq[0], seq[1], ..., 直到pred真值测试失败 |
| |
it, n | it1, it2, ... itn 将一个迭代器拆分为n个迭代器 | ||
p, q, ... | (p[0], q[0]), (p[1], q[1]), ... |
|
排列组合迭代器:
迭代器 | 实参 | 结果 |
---|---|---|
p, q, ... [repeat=1] | 笛卡尔积,相当于嵌套的for循环 | |
p[, r] | 长度r元组,所有可能的排列,无重复元素 | |
p, r | 长度r元组,有序,无重复元素 | |
p, r | 长度r元组,有序,元素可重复 |
例子 | 结果 |
---|---|
|
|
|
|
|
|
|
|