一、排列组合迭代器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 分组
|