一、itertools模块
(1)函数:combinations(it,out_len)
说明:把it产出的out_len个元素组合在一起,然后产出。
举例代码如下:
import itertools
a = list(itertools.combinations('ABC',1))
print(a)
b = list(itertools.combinations('ABC',2))
print(b)
c = list(itertools.combinations('ABC',3))
print(c)
d = list(itertools.combinations('ABC',4))
print(d)
代码执行结果如下:

最后的一个示例中out_len=4输入一个空的列表,我的理解是'ABC'三个元素,无法生成长度为4的元素。
(2)函数:combinations_with_replacement(it,out_len)
说明:把it产出的out_len个元素组合在一起,然后产出,包含相同的元素的组合
举例代码如下:
import itertools
a = list(itertools.combinations_with_replacement('ABC',2))
print(a)
代码执行结果如下:
![]()
(3)函数:count(start=0,step=1)
说明:从start开始不断产出数字,按step指定的步幅增加
举例代码如下:
import itertools ct = itertools.count() a = next(ct) b = next(ct) c = next(ct) print(a,b,c) ctt = itertools.count(4,2) a1 = next(ctt) b1 = next(ctt) c1 = next(ctt) print(a1,b1,c1)
代码执行结果如下:
![]()
(4)函数:cycle(it)
说明:从it中产出各个元素,存储各个元素的副本,然后按顺序重复不断地产出各个元素。
举例代码如下:
import itertools
cy = itertools.cycle('ABC')
a = next(cy)
b = next(cy)
c = list(itertools.islice(cy,7))
print(a)
print(b)
print(c)
代码执行结果:

(5)函数:permutations(it,out_len=None)
说明:把out_len个it产出的元素排列在一起,然后产出这些排列;out_len的默认值等于len(list(it))
举例代码如下:
import itertools
a = list(itertools.permutations('ABC'))
print(a)
b = list(itertools.permutations('ABC',2))
print(b)
代码执行结果如下:

out_len的默认值等于len(list(it)),是所以第一个'ABC'默认的值等于3,生成长度为3的元素。
(6)函数:repeat(item,[times])
说明:重复不断地产出指定的元素,除非提供times,指定次数。
举例代码如下:
import itertools
import operator
rp = itertools.repeat(7)
a = next(rp)
print(a)
b=next(rp)
print(b)
rp1 = list(itertools.repeat('a',4))
print(rp1)
rp2 = list(map(operator.mul,range(11),itertools.repeat(5)))
print(rp2)
代码执行结果如下:


3297

被折叠的 条评论
为什么被折叠?



