Python itertools.product和permutations
2023-03-30 12:36 作者:Superlitter | 我要投稿
1.itertools.product
语法:itertools.product(*iterables,repeat=1)
参数说明:
*代表接受可变的参数
iterables,可迭代对象,可以使用for in 遍历的对象(内部实现了__iter__()),包括list,str, dict等。
返回的是笛卡尔积,根据传入的元素,返回他们的笛卡尔积
repeat参数,可以用来控制笛卡尔积的元素个数,不传默认1
product(A,B) 等价于 ((x,y) for x in A for y in B)
('A', 'C')
('A', 'D')
('B', 'C')
('B', 'D')
解决实际问题:
例:有4个数字 1 2 3 4,能组成多少不重复的三位数,各是多少
常规写法:
product:
当然,也可以使用itertools 下的permutations实现,代码如下
2.itertools.permutations
语法:itertools.permutations(*iterables,r=None)
参数说明:
*代表接受可变的参数
iterables,可迭代对象
默认返回(r=None)的是所有元素的排列组合
r参数,指定排列的长度,不传默认None