【发布时间】:2015-04-04 03:37:40
【问题描述】:
我正在尝试编写一些代码,这些代码将为我提供 itertools 产品,用于不同数量的输入。例如,这对我有用。
test = np.array([x for x in itertools.product([0,2],[0,2],[0,2])])
这给了我想要的结果:
>>> test
array([[0, 0, 0],
[0, 0, 2],
[0, 2, 0],
[0, 2, 2],
[2, 0, 0],
[2, 0, 2],
[2, 2, 0],
[2, 2, 2]])
但是,我希望能够将不同数量的列表传递给产品功能。例如:
test = np.array([x for x in itertools.product([0,2],[0,2],[0,2],[0,2])])
或
test = np.array([x for x in itertools.product([0,2],[0,2])])
我试过了
test = np.array([x for x in itertools.product(([0,2],) * 3)])
和
test = np.array([x for x in itertools.product([[0,2]]*3)])
但两者都没有给我想要的结果。当然,有一种简单的方法可以做到这一点。我将不胜感激。
【问题讨论】:
-
您查看过
itertools.product的文档吗? -
在将某人引导至文档时提供链接更有用:docs.python.org/2/library/itertools.html#itertools.product
-
@whitey04:只需在控制台输入
help(itertools.product)。如果我们要链接到特定版本的文档,至少要链接到当前版本。 -
是的,我确实看过文档。我真的没有在 itertools 中看到任何似乎正是我正在寻找的东西,但这似乎是最有希望的。
-
@user14241:尊敬的,您一定没有仔细阅读。文档明确表示“例如,product(A, repeat=4) 与 product(A, A, A, A) 的含义相同。”
标签: python arrays list numpy itertools