【PYTHON】python建立動態增長​​的真值表

2020-10-26 PYTHON

我的問題很簡單:
“如何以一種優雅的方式在python中建立一個動態增長的真值表?”

對於n = 3

for p in False, True:
    for q in False, True:
        for r in False, True:
            print '|{0} | {1} | {2} |'.format(int(p),int(q), int(r))

對於n = 4
for p in False, True:
    for q in False, True:
        for r in False, True:
            for s in False, True:
                print '|{0} | {1} | {2} | {3}'.format(int(p),int(q), int(r), int(s))

我想有一個將n作為引數並建立表的函式,沒有必要
打印表,返回代表該表的資料結構也是可以的。

解決辦法

使用 itertools.product() :

table = list(itertools.product([False, True], repeat=n))
n = 3的結果:
[(False, False, False),
 (False, False, True),
 (False, True, False),
 (False, True, True),
 (True, False, False),
 (True, False, True),
 (True, True, False),
 (True, True, True)]

出處

Have any Question?

Let us answer it!