LWZ*_*LWZ 28 python math list python-2.7
在Python,我怎么能得到的所有组合n二进制值0和1?
例如,如果n = 3,我想拥有
[ [0,0,0], [0,0,1], [0,1,0], [0,1,1], ... [1,1,1] ] #total 2^3 combinations
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
Vol*_*ity 59
import itertools
lst = list(itertools.product([0, 1], repeat=3))
Run Code Online (Sandbox Code Playgroud)
这将产生一个元组列表(见这里)
您可以轻松更改此选项以使用变量repeat:
n = 3
lst = list(itertools.product([0, 1], repeat=n))
Run Code Online (Sandbox Code Playgroud)
如果您需要列表,那么您可以使用该map功能(感谢@Aesthete).
lst = map(list, itertools.product([0, 1], repeat=n))
Run Code Online (Sandbox Code Playgroud)
或者在Python 3中:
lst = list(map(list, itertools.product([0, 1], repeat=n)))
# OR
lst = [list(i) for i in itertools.product([0, 1], repeat=n)]
Run Code Online (Sandbox Code Playgroud)
请注意,使用map或列表推导意味着您不需要将产品转换为列表,因为它将遍历itertools.product对象并生成列表.
Ani*_*nil 10
如果不使用任何内置函数或智能技术,我们可以这样做
def per(n):
for i in range(1<<n):
s=bin(i)[2:]
s='0'*(n-len(s))+s
print (map(int,list(s)))
per(3)
Run Code Online (Sandbox Code Playgroud)
产量
[0, 0, 0]
[0, 0, 1]
[0, 1, 0]
[0, 1, 1]
[1, 0, 0]
[1, 0, 1]
[1, 1, 0]
[1, 1, 1]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29943 次 |
| 最近记录: |