【发布时间】:2017-12-23 05:46:54
【问题描述】:
我想知道我是否可以使用python编写一个关于这个问题的程序。 我有三个数组:
A = ['a1','a2','a3','a4','a5','a6']
B = ['b1','b2','b3','b4','b5','b6']
C = ['c1','c2','c3','c4','c5','c6']
我需要一次从每个数组中获取一个元素,将它们放在一起并打印出来,例如'a1b1c1'。
无论顺序如何,每个分组元素只能出现一次。
每个元素必须与每轮中其他两个数组中的新元素组合在一起。 例如,在第一个循环中,'a1','b1','c1'被选中,在接下来的轮次中,如果'a1'被再次选中,'b1'和'c1'都不能被选中。 如何在 Python 中编写循环并打印所有可能的结果?谢谢。
A = ['a1','a2','a3','a4','a5','a6']
B = ['b1','b2','b3','b4','b5','b6']
C = ['c1','c2','c3','c4','c5','c6']
for i in range(len(A)):
a=A[i]
for j in range(len(B)):
b=B[j]
for h in range(len(C)):
c=C[h]
print a+b+c
让我以包含 3 个元素的 3 个数组为例,因为 6 个元素的列表太长了。
预期结果: a1,b1,c1
a1,b2,c2
a1,b3,c3
a2,b1,c2
a2,b2,c3
a2,b3,c1
a3,b1,c3
a3,b2,c1
a3,b3,c2
【问题讨论】:
-
投反对票,因为您没有提到您为此付出的任何努力。请发布您的代码。
-
我不确定我是否明白你的问题,但你可能想看看
itertools或者itertools.permutations -
您需要明确您的预期输出是什么。我认为您可以使用
itertools.product或itertools.combinations做您想做的事,但这很难说。顺便说一句,您可能因为您的问题不清楚并且没有发布自己的代码尝试而获得了这些反对意见。 -
我想我已经知道你想做什么,但我仍然不确定。如果'a1b1c1'已经被打印出来,是否允许'a2b1c1'? IOW,我想你是说如果我们打印了“a1b1c1”,那么“axb1c1”、“a1byc1”或“a1b1cz”对于任何其他 x、y 或 z 都不合法。那是对的吗?如果是这样,则列表中的一组有效组合包含 28 个三元组。
-
嗨,下午 2 环。是的,如果'a1b1c1'已经被打印出来,'a1','b1','c1'的任意两个的组合应该不会出现。