本文主要是介绍python之itertools实现排列组合,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
itertools 是python的迭代器模块,里面有很多函数可以用来高效生成迭代器,《python之itertools模块》这篇文章写得挺详细的,有兴趣的可以看看。
这里只介绍一下排列组合的几个函数。
product 笛卡尔积 (有放回抽样排列)
permutations 排列 (不放回抽样排列)
combinations 组合,没有重复 (不放回抽样组合)
combinations_with_replacement 组合,有重复 (有放回抽样组合)
一、product
product函数中的repeat可以理解为参数重复次数,默认repeat=1;product可以处理一个到多个对象,这里以2个举例
import itertoolsb = [1,2,3]
k = [4,5]
c = itertools.product(b,k,repeat=1)
for i in c:print(i)
print('=='*20)
z = itertools.product(b,k,repeat=2)
for i in z:print(i)
二、permutations
permutations函数就是用来求数学课上教的排列
b = [1,2,3]
d = itertools.permutations(b,3)
for i in d:print(i)
三、combinations
组合
b = [1,2,3]
e = itertools.combinations(b,2)
for i in e:print(i)
四、combinations_with_replacement
有放回抽样组合
b = [1,2,3]
f = itertools.combinations_with_replacement(b,2)
for i in f:print(i)
这篇关于python之itertools实现排列组合的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!