用python实现排列组合

比如我们要实现1,2,3的排列组合,我们可以很容易写出来,如下表:

    1个元素 2个元素 3个元素
不考虑顺序 123 1,2,3 12,13,23 123
考虑顺序 123 1,2,3, 12,21,13,31,23,32 123,132,213,231,312,321
用代码实现,首先是不考虑顺序的:

#选取2个对象
import itertools
print list(itertools.combinations([1,2,3,4],3))
[(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]

#选取3个对象

import itertools

print list(itertools.combinations([1,2,3,4],2))
 [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]


考虑顺序

import itertools
print list(itertools.permutations([1,2,3,4],2))  #第二个参数2表示要选几个对象
[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)] 


总结:主要实例分析了itertools库里combinations函数与permutations函数的区别

combinations:不考虑顺序的排列组合

permutations:考虑顺序的排列组合

你可能感兴趣的:(数据分析,python)