【Python】itertools模块把输入的各个元素扩展成多个输出元素的生成器函数

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

代码执行结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值