为什么这个嵌套循环不能生成所有可能的结果?

2022-07-06 11:59:09 发布

您现在位置:Python中文网/ 问答频道 /正文

for c in [3,6]:
    for s in [1,2]:
        for d in [1,2,3]:
            for z in [2,4,6,8]:
                for x in ['B','C','D','E','F']:
                    for y in ['B','C','D','E','F','G']:
                        print(y,x,z,d,s,c)

如果我运行这个,它不会产生所有可能的结果。让我解释一下: 最后一个数字(对于[3,6]中的c)有两种可能的结果。。3分或6分。但是程序只打印3个。你知道吗


Tags: in程序for数字print
1条回答
网友
1楼 ·

尽管您的代码应该可以工作,但如果您或您的计算机在处理这些深度嵌套的循环时遇到问题,请尝试使用product()from itertools,这样可以简化如下情况:

from itertools import product

c = [3, 6]
s = [1, 2]
d = [1, 2, 3]
z = [2, 4, 6, 8]
x = ['B','C','D','E','F']
y = ['B','C','D','E','F','G']

for sequence in product(y, x, z, d, s, c):
    print(*sequence)

部分输出

B B 2 1 1 3
B B 2 1 1 6
B B 2 1 2 3
B B 2 1 2 6
B B 2 2 1 3
...
G F 8 2 2 6
G F 8 3 1 3
G F 8 3 1 6
G F 8 3 2 3
G F 8 3 2 6