-
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)