数据科学
利用python实现参数的排列组合
数据计算中,我们常常需要求解这样的问题:“一组参数中可以有多少种组合方式?”。比如:在四张不同花色的扑克牌中,两两组合、三三组合…时会有几种方式。
对于前述问题的求解,在python语言中,可以利用标准库itertools提供的combinations(iterable, k) 和 permutatios(iterable, k)实现。
函数介绍
- combinations(iterable, k): 生成一个由iterable中所有可能的k元元祖(tuple)组成的序列(无序的)。
用于实现”组合“问题: c o m b i n a t i o n : C m k combination:C^{k}_{m} combination:Cmk - permutations(iterable, k): 生成一个由iterable中所有可能的k元元组(tuple)组成的序列(有序的)
用于实现“排列”问题: p e r m u t a t i o n s : A m k permutations:A^{k}_{m} permutations:Amk
代码实现
导入需要的标准库itertools
# -*- coding: utf-8 -*-
import itertools
假设现有一组需要进行排列组合求解的参数序列如下:
base_list = ['a', 'b', 'c', 'd', 'e']
情形1:求解三元组合
combination_with_three_para = list(itertools.combinations(