如何解决如何从多组元素中找到所有组合?
我想从3组元素中形成所有可能的6种组合。组成如下:
- 从A组(
a,b,c,d,e
)中夺取2个 - 从B组(
f,g,h,i,j
)中获得2,并且 - 从组C(
k,l,m,n,o,p,q,r,s,t
)中夺取2 另外,在此之后,我想将其导出为如下所示的CSV文件:
Column 1 Column 2 Column 3 Column 4 Column 5 Column 6
a b f g k l
以此类推...
ps。如果不允许字母,则可以编号。
我尝试使用itertools
和list,但仍然没有。希望你能帮帮我。
解决方法
以下是您排列的代码:
# Print CSV header
print("Column 1,Column 2,Column 3,Column 4,Column 5,Column 6")
A = ['a','b','c','d','e']
B = ['f','g','h','i','j']
C = ['k','l','m','n','o','p','q','r','s','t']
for a1 in range(0,len(A)):
for a2 in range(a1 + 1,len(A)):
for b1 in range(0,len(B)):
for b2 in range(b1 + 1,len(B)):
for c1 in range(0,len(C)):
for c2 in range(c1 + 1,len(C)):
print(A[a1] + "," + A[a2] + "," + B[b1] + "," + B[b2] + "," + C[c1] + "," + C[c2])
它将为问题中指定的输入打印4500行。
它假定顺序无关紧要,因此,如果出现(a,b)
,则不会出现(b,a)
。它也不会两次输出字母(a,a)
不会出现。
如果您想使用双字母,请将a1 + 1
替换为a1
(也用于b
和c
)。
如果订单很重要,(因此您想拥有(a,b)
和 (b,a)
),请用a1 + 1
替换0
(对于b
和c
)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。