お世話になっております。
下記のような真偽値表が出力できるリストを作成したいです。
ラムダ式を引数でとるのですが、どう扱ったらよいのかわかりません。
ぜひ、ご回答お願いいたします。
python
1#a,bがTrueならTrue。それ以外はFalse 2def AND(a,b): 3 return a and b 4 5#aかbどちらか一方がTrueならTrue。それ以外はFalse 6def OR(a,b): 7 return a or b 8 9#aとbがどちらも同じならTrue。それ以外はFalse 10def EQ(a,b): 11 return a == b 12 13 14def table(a): 15 16 17(a)には【lambda a, b: AND(a, OR(a, b))】か 18 【lambda a, b, c: EQ(AND(a, OR(b, c)), OR(AND(a, b), AND(a, c)))】が入る想定。 19 20<lambda a, b: AND(a, OR(a, b))入力時の想定> 21[ 22 [True, True, True], 23 [True, False, True], 24 [False, True, False], 25 [False, False, False] 26] 27 28<lambda a, b, c: EQ(AND(a, OR(b, c)), OR(AND(a, b), AND(a, c)))入力時の想定> 29[ 30 [True, True, True, True], 31 [True, True, False, True], 32 [True, False, True, True], 33 [True, False, False, True], 34 [False, True, True, True], 35 [False, True, False, True], 36 [False, False, True, True], 37 [False, False, False, True] 38]
試したこと
from itertools import product def table(a): lamb = a ls = [] 下記でそれぞれ出力したい結果は得られるのですが、どうにか条件等指定して、 欲しい結果だけを出力させたいです。 for x,y in product([True,False],repeat=2): ls.append([x,y,lamb(x,y)]) for x,y,z in product([True,False],repeat=3): ls.append([x,y,z,lamb(x,y,z)]) return ls
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/29 04:57
2019/08/29 10:44
2019/08/29 11:32