Python排列集合元素是指从给定元素集合中计算出所有可能的排列组合情况。Python自带的itertools模块提供了方便的排列组合计算方法。
Permutations 方法
permutations 方法可以用来生成给定序列中所有长度为r的排列,r缺省值为n,如果缺省,则生成所有的排列情况。
permutations方法的使用方法如下:
from itertools import permutations
#生成给定序列的所有排列组合情况
permutation_list = list(permutations(iterable[, r]))
其中iterable表示输入的序列,r表示输出序列的长度,如果不指定r,则默认为输入序列的长度。
以生成字符串‘ABCD’的长度为2的所有排列情况为例,代码如下:
from itertools import permutations
#生成字符串‘ABCD’的长度为2的所有排列情况
permutation_list = list(permutations('ABCD', 2))
print(permutation_list)
该段代码的输出结果为:
[('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'A'), ('B', 'C'), ('B', 'D'), ('C', 'A'), ('C', 'B'), ('C', 'D'), ('D', 'A'), ('D', 'B'), ('D', 'C')]
代码的执行过程中,itertools.permutations方法返回的是一个iterator对象,所以我们需要利用list()将其转换成list类型的数据。
Combinations方法
combinations方法可以用来生成给定序列中所有长度为r的组合情况,r缺省值为n,如果缺省,则生成所有的组合情况。
combinations方法的使用方法如下:
from itertools import combinations
#生成给定序列的所有组合情况
combination_list = list(combinations(iterable, r))
其中iterable表示输入的序列,r表示输出序列的长度,如果不指定r,则默认为输入序列的长度。
以生成字符串‘ABCD’的长度为2的所有组合情况为例,代码如下:
from itertools import combinations
#生成字符串‘ABCD’的长度为2的所有组合情况
combination_list = list(combinations('ABCD', 2))
print(combination_list)
该段代码的输出结果为:
[('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'C'), ('B', 'D'), ('C', 'D')]
代码的执行过程中,itertools.combinations方法返回的也是一个iterator对象,需要转换成list类型的数据。
以上是Python排列集合元素的基本使用方法,通过permutations和combinations方法可以快速方便地计算集合元素的排列组合情况。