我需要的是一次为两个元素创建组合。
如果列表包含:seq = ['A', 'B', 'C']
输出将是com = [['A', 'B'], ['A', 'C'], ['B', 'C']]
所有这些都没有itertools.combinations
方法。
我对排列使用了下面的代码。但是我怎样才能修改它使其与组合一起工作呢?
def permute(seq):
if len(seq) <= 1:
perms = [seq]
else:
perms = []
for i in range(len(seq)):
sub = permute(seq[:i]+seq[i+1:])
for p in sub:
perms.append(seq[i:i+1]+p)
return perms
如果不想使用
itertools
,请使用documented pure-Python equivalent:直接这样做很简单:
然后:
显示:
唯一使组合变得棘手的是满足一次只在运行时获取的已知元素数。只要你事先知道这个数字,一个固定数量的嵌套循环以一种明显的方式完成这项工作。
输入:
输出:
相关问题 更多 >
编程相关推荐