私は辞書のリストを持っています。各辞書には特定のブール値フラグがあります。したがって、リストは次のようになります。if-else構文を使用せずに真理値表に基づいて得点を割り当てる
listA = [{key1: somevalue1, key2:somevalue2, flag1:True, flag2:False, score:0},
{key1: somevalue3, key2:somevalue4, flag1:False, flag2:True, score:0},
...
{key1: somevalue(N-1), key2:somevalueN, flag1:True, flag2:False, score:0}]
私は、フラグの値の組み合わせに基づいてスコアを割り当てるテーブルを持っているとしましょう。これは、バイナリ真理値表のようなものです:
私は今、リストを反復処理し、それらが指定した組み合わせに基づいて、リスト内の各辞書にこれらのスコアを割り当てるflag1 True True False False
flag2 True False True False
score 1 2 3 4
。 elseループの代わりに、それを行うエレガントな方法がありますか?私はたくさんのフラグを持っていますが、新しいフラグが追加されるたびにその組み合わせが増えます - 結果 - コードはちょっと醜いです。
ああ。これは簡単に見えます!ありがとう!! :) – sneha