我正在尝试生成所有可能的字节来测试机器学习算法(8-3-8壁画网络编码器)。有没有办法在python中不用8个循环就能做到这一点呢?
排列能有所帮助吗?
我更喜欢一种优雅的方式来做这件事,但我会采取目前我能得到的。
所需输出:
[0,0,0,0,0,0,0,0]
[0,0,0,0,0,0,0,1]
[0,0,0,0,0,0,1,0]
[0,0,0,0,0,0,1,1]
[0,0,0,0,0,1,0,0]
[0,0,0,0,0,1,0,1]
.
.
.
[1,1,1,1,1,1,1,1]发布于 2013-03-21 10:29:15
是的,有,itertools.product
import itertools
itertools.product([0, 1], repeat=8)
>>> list(itertools.product([0, 1], repeat=8))
[(0, 0, 0, 0, 0, 0, 0, 0),
(0, 0, 0, 0, 0, 0, 0, 1),..。
(1, 1, 1, 1, 1, 1, 1, 0),
(1, 1, 1, 1, 1, 1, 1, 1)]发布于 2013-03-21 10:34:28
[[x>>b&1 for b in range(8)] for x in range(256)]发布于 2013-03-21 10:28:08
您可以遍历数字,然后将其转换为二进制:
[bin(x)[2:] for x in range(256)]https://stackoverflow.com/questions/15538354
复制相似问题