欢迎光临散文网 会员登陆 & 注册

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


Python itertools.product和permutations的评论 (共 条)

分享到微博请遵守国家法律