itertools 模块常用工具
Python itertools 模块中有哪些常用的迭代器工具?请举例说明它们的用途。
回答
我还是少年
- count(start, step):无限等差数列
- cycle(iterable):无限循环
- repeat(obj, times):重复对象
- chain(*iterables):串联多个迭代器
- compress(data, selectors):布尔筛选
- dropwhile/takewhile:条件截断
- groupby:对连续相同键分组
- islice:迭代器切片
- product:笛卡尔积
- permutations/combinations:排列组合
from itertools import *
# 组合
list(combinations('ABC', 2)) # [('A','B'), ('A','C'), ('B','C')]
# groupby
data = [('a', 1), ('a', 2), ('b', 3)]
for k, g in groupby(data, key=lambda x: x[0]):
print(k, list(g))