问题描述
我想在 6 个位置放置三个数字 [0,1,-1]。它应该给出 3^6 = 729 种组合。代码应返回如下内容:
(0,0)
(0,1)
(0,-1)
(0,-1)
.
.
(-1,-1,0)
(-1,-1)
我尝试使用“itertools.permutations”,但对如何将 0,-1 合并到其中感到困惑。
解决方法
查看itertools.product(*iterables,repeat=1)
here。
像这样使用:
> product([-1,1],repeat=6)
[...]
(1,1,-1,-1),(1,0),1),1)]
让你len(list(product([-1,repeat=6))) = 729
使用itertools.product
import iertools
assert(sum(1 for _ in itertools.product([-1,repeat=6)) == 3**6)
如果您知道 itertools.permutations
,我认为不需要更多解释。