生成一个长度为 n 的列表,其中有 m 个可能的元素
我需要用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我想你想要
然后,顺便说一句,
print sum(1 for x in y)
会打印67108864
,如您所料。I think you want
Then, btw,
print sum(1 for x in y)
prints,67108864
, as you expect.