目录:
这类迭代器可以无限生成值,使用时必须通过某种方式限制输出,否则会导致无限循环。
from itertools import count
# 生成从 10 开始的整数序列
for i in count(10):
if i >= 15: break
print(i) # 输出:10 11 12 13 14
这类迭代器可以无限生成值,使用时必须通过某种方式限制输出,否则会导致无限循环。
from itertools import cycle
colors = ['red', 'green', 'blue']
for i, color in enumerate(cycle(colors)):
if i >= 5: break
print(color) # 输出:red green blue red green
from itertools import repeat
print(list(repeat('A', 5))) # 输出:['A', 'A', 'A', 'A', 'A']
print('A' * 5) # 输出:AAAAA
from itertools import chain
print(list(chain('ABC', 'DEF'))) # 输出:['A', 'B', 'C', 'D', 'E', 'F']
print(list(chain.from_iterable(['ABC', 'DEF']))) # 输出:['A', 'B', 'C', 'D', 'E', 'F']
from itertools import compress
letters = ['a', 'b', 'c', 'd', 'e']
mask = [True, False, False, True, False]
print(list(compress(letters, mask))) # 输出:['a', 'd']
from itertools import zip_longest
print(list(zip_longest('ABCD', 'xy', fillvalue='-')))
# 输出:[('A', 'x'), ('B', 'y'), ('C', '-'), ('D', '-')]
print(list(zip_longest('xy', 'ABCD', fillvalue='-')))
# 输出:[('x', 'A'), ('y', 'B'), ('-', 'C'), ('-', 'D')]
from itertools import product
print(list(product('AB', '12')))
# 输出:[('A', '1'), ('A', '2'), ('B', '1'), ('B', '2')]
print(list(product('AB', repeat=2)))
# 输出:[('A', 'A'), ('A', 'B'), ('B', 'A'), ('B', 'B')]
from itertools import permutations
print(list(permutations('ABC', 2)) )
# 输出:[('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]
from itertools import combinations
print(list(combinations('ABC', 2)))
# 输出:[('A', 'B'), ('A', 'C'), ('B', 'C')]
from itertools import combinations_with_replacement
print(list(combinations_with_replacement('ABC', 2)))
# 输出:[('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'B'), ('B', 'C'), ('C', 'C')]
import operator
from itertools import starmap
vector1 = [1, 2, 3]
vector2 = [4, 5, 6]
dot_product = sum(starmap(operator.mul, zip(vector1, vector2)))
print(dot_product) # 输出:32
↶ 返回首页 ↶