import itertools
import operator
#10为开始,2为步长,无限迭代
for i in itertools.count(10,2):
print(i,end=' ')
if i>20:
break
print()
#按照a,b,c,a,b,c,a,b,c,a.....无限的迭代
# for i in itertools.cycle('abc'):
# print(i)
#让 可迭代的iter迭代 n次
it,n='abc',5
for i in itertools.repeat(it,n):
print(i,end=' ')
print()
#it是可迭代数,func可选max,min,operater库操作,lambda操作
#add:累加 效果为计算前缀和 mul:累乘; sub累减等
#lambda a,b:a+b lambda a,b:a*b lambda a,b:a-b
it=[1,2,3,4,5]
ls=[i for i in itertools.accumulate( it ,func=lambda a,b:a*b ) ]
print(ls)
#相当于对it进行n重循环
it,n='abcd',3
ls=list(itertools.product(it,repeat=n))
print(ls)
#组合方法,从it中选出n个元素
it,n='abcde',3
ls=[i for i in itertools.combinations(it,n)]
print(ls)
#全排列后选取部分
for i in itertools.permutations(range(4),2):
print(i)