-
itertools.chain(*iterables):将多个迭代器连接成一个迭代器。
for item in itertools.chain([1, 2, 3], [4, 5, 6]):print(item)

-
itertools.compress(data, selectors):根据 selectors 的布尔值选择 data 中的元素。
data = ['a', 'b', 'c', 'd']
selectors = [True, False, True, False]
for item in itertools.compress(data, selectors):print(item)

-
itertools.dropwhile(predicate, iterable):从 iterable 中丢弃满足 predicate 的元素,直到第一个不满足的元素。
for item in itertools.dropwhile(lambda x: x < 3, [1, 2, 3, 4, 1, 2, 3, 4]):print(item)

-
itertools.filterfalse(predicate, iterable):从 iterable 中选择不满足 predicate 的元素。
for item in itertools.filterfalse(lambda x: x % 2 == 0, [1, 2, 3, 4, 5]):print(item)

-
itertools.islice(iterable, start, stop[, step]):对 iterable 进行切片操作。
for item in itertools.islice(range(10), 2, 8, 2):print(item)

-
itertools.takewhile(predicate, iterable):从 iterable 中选择满足 predicate 的元素,直到第一个不满足的元素。
for item in itertools.takewhile(lambda x: x < 3, [1, 2, 3, 4, 1, 2, 3, 4]):print(item)

-
itertools.tee(iterable, n=2):从单个迭代器创建多个独立的迭代器。
iter1, iter2 = itertools.tee(range(5), 2)
for item in iter1:print(f'From iter1: {item}')
for item in iter2:print(f'From iter2: {item}')

-
itertools.product(*iterables, repeat=1):计算多个迭代器的笛卡尔积。
for item in itertools.product('AB', repeat=2):print(''.join(item))

-
itertools.permutations(iterable, r=None):生成 iterable 中所有长度的排列。
for item in itertools.permutations('ABC', 2):print(''.join(item))

-
itertools.combinations(iterable, r):生成 iterable 中长度为 r 的组合。
for item in itertools.combinations('ABC', 2):print(''.join(item))

-
itertools.combinations_with_replacement(iterable, r):生成 iterable 中长度为 r 的组合,允许元素重复。
for item in itertools.combinations_with_replacement('ABC', 2):print(''.join(item))

-
itertools.accumulate(iterable[, func, *, initial=None]):生成累积结果的迭代器,可选地应用一个函数。
for item in itertools.accumulate([1, 2, 3, 4]):print(item)

-
itertools.groupby(iterable, key=None):根据 key 函数对 iterable 进行分组。
for key, group in itertools.groupby('AAAABBBCCDAABBB'):print(key, list(group))

-
itertools.starmap(function, iterable):将 iterable 中的元素作为参数传递给 function。
for item in itertools.starmap(pow, [(2, 5), (3, 2), (10, 3)]):print(item)
