【发布时间】:2016-01-18 11:21:19
【问题描述】:
我正在尝试打印三个变量的列表的所有可能枚举。例如,如果我的输入是:
x = 1
y = 1
z = 1
我希望输出是这样的:
[[0, 0, 0], [0, 0, 1], [0, 1, 0], [1, 0, 0], [1, 1, 0], [1, 0, 1], [0, 1, 1], [1, 1, 1]]
如果 x,y,z 变量中的任何一个大于 1,它将枚举从 0 到变量值的所有整数。例如,如果 x=3,则 0、1、2 或 3 可能位于 3 元素列表的第一个槽中。
现在我正在创建这样的列表理解:
output = [ [x,y,z] for x,y,z in range(x,y,z)]
我认为 range 函数有问题?
【问题讨论】:
-
你想要完全按照那个顺序输出吗?如果是这样,更复杂的输入的顺序如何?
-
我不太关心顺序,但希望它可以扩展到非二进制变量值,所以如果 x=2,会有诸如 [2,0,0 之类的列表] [2,0,1], [2,1,0], [2,1,1] 在输出中也是如此。