当前位置: 首页 > 面试题库 >

如何获得n个二进制值的所有组合?

朱炳
2023-03-14
问题内容

在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

我怎样才能做到这一点?


问题答案:

采用
itertools.product

import itertools
lst = list(itertools.product([0, 1], repeat=3))

这将产生一个元组列表(请参阅此处)

您可以轻松地将其更改为使用变量repeat

n = 3
lst = list(itertools.product([0, 1], repeat=n))

如果需要列表列表,则可以使用该map功能(感谢@Aesthete)。

lst = map(list, itertools.product([0, 1], repeat=n))

或在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)]

请注意,使用map或列表理解意味着您无需将产品转换为列表,因为它将迭代itertools.product对象并产生一个列表。



 类似资料:
  • 问题内容: 我有这张桌子: 如何为每个名称获得年份第二高的行,如下所示: 我尝试了以下查询,但没有成功: 上一个查询给了我这个错误:“ SQL错误(1235):此版本的MySQL尚不支持’LIMIT&IN / ALL / ANY / SOME子查询’” 而且我现在无法更改MySQL版本(5.6.25),因为该解决方案已经投入生产。 有什么帮助吗? 问题答案: 在MySQL中,每个组求解n的一种方法

  • 我正在使用Javascript(ES6)/FacebookReact,并尝试获得大小不同的数组的前3个元素。我想做与Linq take(n)等价的操作。 在我的Jsx文件中,我有以下内容: 然后我尝试了前3个项目 这不起作用,因为地图没有一个设置的函数。 你能帮忙吗?

  • 我想做一个模板,在那里我可以输入一个索引,它会给我在那个索引的类型。我知道我可以用来实现,但我想自己实现它。例如,我想这样做, ...它会给出位置的类型(因为数组是从0开始索引的)。我怎么能这么做?多谢了。