常用内置模块(5):itertools库——迭代器

 

 

一、排列组合迭代器

1. 笛卡尔积

product("ABC", "12")            #从第1个取1个,从第2个取1个。【例1】

product("ABC", "12", "EF")   #从第1个取1个,从第2个取1个, 从第3个取1个。。。

product("AB", repeat=3)       #等价于product("AB", "AB", "AB")。【例2】

 

 

 

例1:

 

结果:

 

 

例2:

 

结果:

 

2. 排列

permutations("ABC", 2)     #2是排列长度。A3 2 = 3*2 = 6.【例1】

permutations("ABC")           #不写的话就是全排列。【例2】

 

例1:

 

结果:

 

 

例2:

结果:

 

3. 组合

combinations("ABCD", 2)                #C42 = 4*3/2 =  6.【例1】

 

 

例1:

结果:

 

 

 

二、拉链

前面讲的内置函数zip()是短拉链,当长度不一时,只执行到最短处。【例1】

而zip_longest是长拉链。当长度不一时,会执行到最长处,缺省的元素用None或指定字符代替。【例2】【例3】

 

 

例1:

结果:

 

例2:

 

结果:

 

 

例3:

 

结果:

 

 

三、无穷迭代器

只要不停止程序,就一直产生数。。。

count(start=0, step=1)     #创建一个迭代器,它从start开始,返回均匀间隔的值。【例1】

cycle(iterable)        #创建一个迭代器,返回iterable中所有的元素,无线重复。【例2】

repeat(obj, 3)         #不断重复obj, 重复3次。不设次数的话,就永远重复。【例3】

 

例1:

 

结果:

 

 

例2:

 

结果:

 

 

例3:

 

结果:

 

 

四、其他

(1)chain

    锁链

 

(2)gropuby

    分组

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值