Skip to main content
 首页 » 编程设计

python之生成联合分发列表

2025年05月04日17mengfanrong

我很确定这是一个简单的问题,但我完全不知道如何解决这个问题。我正在努力完成 coursera 上的 PGM 类(class),它从联合概率分布开始。所以我试图生成给定 n 个变量的所有可能分布的列表,其中每个变量可以采用 0...z 之间的一些离散值

例如假设我们有 3 个变量,每个变量只能取 0 和 1 我想生成这个:

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

我在 python 中工作,我对如何动态生成它一无所知。

请您参考如下方法:

如果您更喜欢列表理解:

[[a, b, c] for a in range(2) for b in range(2) for c in range(2)] 

我忘了说你可以使用 pprint 来获得你想要的效果:

>>> import pprint   
>>> pprint.pprint([[a, b, c] for a in range(2) for b in range(2) for c in range(2)])   
[[0, 0, 0],   
 [0, 0, 1],   
 [0, 1, 0],   
 [0, 1, 1],   
 [1, 0, 0],   
 [1, 0, 1],   
 [1, 1, 0],   
 [1, 1, 1]]   
>>>