我有3个名单。
A = [1,4,7]
B = [2,5,8]
C = [3,6,9]
如果我从A(比如4)和B的元素(比如-8)中选择一个元素,我有三个C元素可供选择。因此,对于B中的A和b中的每个a,C中有三个c;另外,对于A中的每个a,B中有三个b,每个都有一个C in C.使用这个逻辑,我尝试了下面的代码:
def opt(A,B,C):
for a in A:
for b in B:
for c in C:
return [a,b,c]
try1 = opt(A,B,C)
print(try1)
产生与<:p>相同的输出
def opta(A,B,C):
for adex in range(len(A)):
for bdex in range(len(B)):
for cdex in range(len(C)):
return [A[adex], B[bdex], C[cdex]]
try2 = opta(A,B,C)
print(try2)
运行此代码会生成[a,b,c]的单个列表,而不是[a,b,c]列表的所有27种可能组合。我不明白为什么。在上面的任一代码中更改return语句的缩进只会更改将哪个a,b,c放入输出列表中。
现在假设对于[a,b,c]的每个组合,有一个等于a和b和c的乘积的数字。
prodlist = []
for index in range(27):
prod = a * b * c for a,b,c in [a,b,c]
prodlist.append(prod)
我该怎么做呢?