Python中的统计计数

时间:2014-08-08 09:50:33

标签: python algorithm statistics

我有一套五个字母A..E。我希望将它们组合成3组而不重复字母,但我对于从哪里开始一无所知。

2 个答案:

答案 0 :(得分:1)

假设你有:

s = set('ABCDE')

单次提取

如果您只需要一次提取,请使用random.sample

from random import sample
print sample(s, 3)
# ['E', 'C', 'A']

所有组合

如果您想要所有组合使用itertools.combinations

from itertools import combinations
print list(combinations(s, 3))
# [('A', 'C', 'B'), ('A', 'C', 'E'), ('A', 'C', 'D'), ('A', 'B', 'E'), ('A', 'B', 'D'), ('A', 'E', 'D'), ('C', 'B', 'E'), ('C', 'B', 'D'), ('C', 'E', 'D'), ('B', 'E', 'D')]

所有排列

如果您想要所有组合使用itertools.permutations

from itertools import permutations
print list(permutations(s, 3))
# [('A', 'C', 'B'), ('A', 'C', 'E'), ('A', 'C', 'D'), ('A', 'B', 'C'), ('A', 'B', 'E'), ('A', 'B', 'D'), ('A', 'E', 'C'), ('A', 'E', 'B'), ('A', 'E', 'D'), ('A', 'D', 'C'), ('A', 'D', 'B'), ('A', 'D', 'E'), ('C', 'A', 'B'), ('C', 'A', 'E'), ('C', 'A', 'D'), ('C', 'B', 'A'), ('C', 'B', 'E'), ('C', 'B', 'D'), ('C', 'E', 'A'), ('C', 'E', 'B'), ('C', 'E', 'D'), ('C', 'D', 'A'), ('C', 'D', 'B'), ('C', 'D', 'E'), ('B', 'A', 'C'), ('B', 'A', 'E'), ('B', 'A', 'D'), ('B', 'C', 'A'), ('B', 'C', 'E'), ('B', 'C', 'D'), ('B', 'E', 'A'), ('B', 'E', 'C'), ('B', 'E', 'D'), ('B', 'D', 'A'), ('B', 'D', 'C'), ('B', 'D', 'E'), ('E', 'A', 'C'), ('E', 'A', 'B'), ('E', 'A', 'D'), ('E', 'C', 'A'), ('E', 'C', 'B'), ('E', 'C', 'D'), ('E', 'B', 'A'), ('E', 'B', 'C'), ('E', 'B', 'D'), ('E', 'D', 'A'), ('E', 'D', 'C'), ('E', 'D', 'B'), ('D', 'A', 'C'), ('D', 'A', 'B'), ('D', 'A', 'E'), ('D', 'C', 'A'), ('D', 'C', 'B'), ('D', 'C', 'E'), ('D', 'B', 'A'), ('D', 'B', 'C'), ('D', 'B', 'E'), ('D', 'E', 'A'), ('D', 'E', 'C'), ('D', 'E', 'B')]

其他所有

在您的问题中更具体,并查看itertools页面,它有所有答案。

答案 1 :(得分:1)