首页 > 解决方案 > python中1和0的所有可能的3位组合

问题描述

是否有返回列表中 1 和 0 的所有 3 位组合的函数?所需的输出应如下所示:

[0,0,0]

[1,0,0]

[0,1,0]

[0,0,1]

[1,1,0]

[1,0,1]

[0,0,1]

[1,1,1]

标签: pythoncombinations

解决方案


您可以执行以下操作:

from itertools import product

def split_str(s):
  return [int(ch) for ch in s]

k=3
mm = []
m = ["".join(seq) for seq in product("01", repeat=k)]
mm = list(map(split_str, m))
print(mm)

结果是:

[[0, 0, 0], [0, 0, 1], [0, 1, 0], [0, 1, 1], [1, 0, 0], [1, 0, 1], [1, 1, 0], [1, 1, 1]]

Izaak van Dongen提出的其他解决方案:

mm2 = list(product([0, 1], repeat=3))
print(mm2)

将产生以下输出(通过“untupled”可以轻松实现):

[(0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 1, 1)]

推荐阅读