python内置函数-排列组合函数

Posted BioMarkerInfo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python内置函数-排列组合函数相关的知识,希望对你有一定的参考价值。

python内置函数-排列组合函数

product 笛卡尔积  (有放回抽样排列)

permutations 排列  (不放回抽样排列)

combinations 组合,没有重复  (不放回抽样组合)

combinations_with_replacement 组合,有重复  (有放回抽样组合)

详细的参见官网

 

>>> import itertools
>>> for i in itertools.product(\'ABCD\', repeat = 2):
...     print(i)
... 
(\'A\', \'A\') (\'A\', \'B\') (\'A\', \'C\') (\'A\', \'D\') (\'B\', \'A\') (\'B\', \'B\') (\'B\', \'C\') (\'B\', \'D\') (\'C\', \'A\') (\'C\', \'B\') (\'C\', \'C\') (\'C\', \'D\') (\'D\', \'A\') (\'D\', \'B\') (\'D\', \'C\') (\'D\', \'D\')
>>> for i in itertools.permutations(\'ABCD\', 2):
...     print(i)
... 
(\'A\', \'B\') (\'A\', \'C\') (\'A\', \'D\') (\'B\', \'A\') (\'B\', \'C\') (\'B\', \'D\') (\'C\', \'A\') (\'C\', \'B\') (\'C\', \'D\') (\'D\', \'A\') (\'D\', \'B\') (\'D\', \'C\')
>>> for i in itertools.combinations(\'ABCD\', 2):
...     print(i)
... 
(\'A\', \'B\') (\'A\', \'C\') (\'A\', \'D\') (\'B\', \'C\') (\'B\', \'D\') (\'C\', \'D\')
>>> for i in itertools.combinations_with_replacement(\'ABCD\', 2):
...     print(i)
... 
(\'A\', \'A\') (\'A\', \'B\') (\'A\', \'C\') (\'A\', \'D\') (\'B\', \'B\') (\'B\', \'C\') (\'B\', \'D\') (\'C\', \'C\') (\'C\', \'D\') (\'D\', \'D\')

     还有就是,combinations和permutations返回的是对象地址,原因是在python3里面,返回值已经不再是list,而是iterators(迭代器), 所以想要使用,只用将iterator 转换成list 即可, 还有其他一些函数返回的也是一个对象,需要list转换,比如 list(map())等 。

以上是关于python内置函数-排列组合函数的主要内容,如果未能解决你的问题,请参考以下文章

python3内置函数大全(顺序排列)

利用Python解答排列组合问题

【基础】Python3小程序_之排列组合

python中的排列组合

python学习8_1 面向对象(继承多态封装)以及零散概念(组合,property,绑定方法与非绑定方法,反射,内置函数)

几个有用的python函数 (笛卡尔积, 排列, 组合)