itertools.permutation(iterate, r)
提供了一种方法来提供一组长度为r
或len(iterate)
的置换。但是,如果出现以下情况,则不起作用:
r>len(iterate)
就拿这个例子来说
list(intertools.permutation([0, 1, 2]))
返回
[(0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), (2, 1, 0)]
这是意料之中的
但是假设我们希望r大于迭代的长度。i、 e.如果你将一个集合[0,1,2]迭代4个长度,你希望得到如下这样的答案
[[0, 0, 0, 0]
[0, 0, 0, 1]
[0, 0, 0, 2]
[0, 0, 1, 1]
[0, 0, 1, 2]
...
[2, 2, 1, 2]
[2, 2, 2, 0]
[2, 2, 2, 1]
[2, 2, 2, 2]]
但是,当您尝试list(itertools.permutation([0, 1, 2], 4))
时,它返回[]
,即空
如果有人知道这样做的方法,请告诉我
尝试使用itertools.product(*iterables, repeat=1)
在您的情况下,可以使用
list(itertools.product(range(3), repeat=4))
相关问题 更多 >
编程相关推荐