生成一个长度为 n 的列表,其中有 m 个可能的元素

发布于 2024-09-26 06:19:01 字数 476 浏览 8 评论 0原文

我需要用 Python 生成大量列表。每个列表的长度都是 13,每个元素有 4 个可能的值。这些是 [1, -1, i, -i],但它可以是任何东西。

因此,根据主题中的信息,我应该得到 4 * 4 * 4 ... * 4 = 4^13 = 67,108,864 个列表,或者更一般地说,m^n。

我在Python的itertools中尝试了combinations_with_replacement方法,但是使用下面的代码我只得到560个结果。

c = it.combinations_with_replacement([1,-1,np.complex(0,1), np.complex(0,-1)], 13)
print list(c)

我知道组合不关心顺序,所以这个结果可能是正确的。但是,当我使用排列方法时,我只能选择第二个参数 <= 第一个参数中的元素数量。

知道如何实现这一点吗?

谢谢!

I need to generate a ton of lists in Python. Every list is of length 13, and I have 4 possible values that can go into each element. These are [1, -1, i, -i], but it could be whatever.

Thus I should get 4 * 4 * 4 ... * 4 = 4^13 = 67,108,864 lists, or more generally, m^n, given the info in the subject.

I tried the combinations_with_replacement method in Python's itertools, but with the following code I only get 560 results.

c = it.combinations_with_replacement([1,-1,np.complex(0,1), np.complex(0,-1)], 13)
print list(c)

I know that combinations do not care about order, so this result is probably right. However, when I use the permutations method instead, I can only pick the second argument <= the number of elements in the first argument.

Any idea how to accomplish this?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我是有多爱你 2024-10-03 06:19:01

我想你想要

y = itertools.product((1, -1, 1j, -1j), repeat=13)

然后,顺便说一句,print sum(1 for x in y) 会打印 67108864,如您所料。

I think you want

y = itertools.product((1, -1, 1j, -1j), repeat=13)

Then, btw, print sum(1 for x in y) prints, 67108864, as you expect.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文