python中的排列组合

Posted

tags:

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

参考技术A 在日常的工作学习中,我们肯定会遇到排列组合问题,比如,在5种颜色的球中,任意取3个,共有多少种组合方式,这也包括有放回和无放回抽样。
在python中,自带的排列组合函数,都在python的指导工具包itertools中。
product 笛卡尔积  (有放回抽样排列)
permutations 排列  (不放回抽样排列)
combinations 组合,没有重复  (不放回抽样组合)
combinations_with_replacement 组合,有重复  (有放回抽样组合)

python3中返回的为对象,可以通过迭代读取将值输出。
end

python 实现排列组合

对于一个数组(或任何可以迭代的元素集),可以通过itertools包中的permutationscombinations轻松完成排列,组合

python3中permutationscombinations返回的是一个迭代器,可以通过list转化为一个列表,方便我们进一步处理

具体用法看下面的例子

import itertools
from itertools import permutations, combinations

print("Permutations of ‘bar‘")
print(list(permutations(bar)))

#输出结果
#Permutations of ‘bar‘
#[(‘b‘, ‘a‘, ‘r‘), (‘b‘, ‘r‘, ‘a‘), (‘a‘, ‘b‘, ‘r‘), (‘a‘, ‘r‘, ‘b‘), (‘r‘, ‘b‘, ‘a‘), (‘r‘, ‘a‘, ‘b‘)]

print("Combinations of 2 letters from ‘bar‘")
print(list(combinations(bar, 2)))

#输出结果
#Combinations of 2 letters from ‘bar‘
#[(‘b‘, ‘a‘), (‘b‘, ‘r‘), (‘a‘, ‘r‘)]

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

Python排列组合的计算方法

利用Python解答排列组合问题

python 实现排列组合

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

Python3 - 排列组合的迭代

python 实现排列组合