PythonのcollectionsのCounterサブクラスで算術演算を行う

PythonのcollectionsのCounterサブクラスで算術演算を行ってみます。

Counterオブジェクトに対して算術演算を実行し、集計結果を取得することができます。

■Python

Google Colaboratory(Google Colab),Python3.7.10

■加算(足し算)

では、Counterオブジェクトに対して算術演算を実行してみます。まずは加算(足し算)です。

■コード

import collections

a1 = collections.Counter([1, 2, 3, 4, 5])
b2 = collections.Counter([1, 2, 3, 4, 5])

print(a1 + b2)

インポートでcollectionsを呼び出します。その後にa1とb2という変数を定義し、collections.Counter()を用いて、引数,パラメータで角括弧”[ ]”で定義されたリストを渡し、Counterオブジェクトとして保存し、a1とb2にそれぞれ格納します。

格納後、a1とb2を代数演算子”+(プラス)”を用いて加算(足し算)します。加算(足し算)した結果をprint()関数で出力します。

■実行・検証

スクリプトを作成後、このスクリプトを実行してみます。

実行してみると、角括弧”[ ]”で定義されたリストがCounterオブジェクトとして保存され、リスト内の要素(数値)が代数演算子”+(プラス)”を用いたことで、a1変数とb2変数の全ての要素がカウントされ、集計結果をprint()関数で取得させることができました。

■減算(引き算)

では、次はCounterオブジェクトに対して減算(引き算)を行ってみます。

■コード

import collections

a1 = collections.Counter([1, 2, 3, 4, 5])
b2 = collections.Counter([1, 2, 3, 4, 10])

print(a1 - b2)

先程同じように、a1とb2という変数を定義し、collections.Counter()を用いて、引数,パラメータで角括弧”[ ]”で定義されたリストを渡し、Counterオブジェクトとして保存し、a1とb2にそれぞれ格納します。

最後にa1とb2を代数演算子”-(マイナス)”を用いて減算(引き算)します。減算(引き算)した結果をprint()関数で出力します。

■実行・検証

スクリプトを作成後、このスクリプトを実行してみます。

実行してみると、角括弧”[ ]”で定義されたリストがCounterオブジェクトとして保存され、リスト内の要素(数値)が代数演算子”-(マイナス)”を用いたことで、減算(引き算)された。今回はa1からb2を減算(引き算)しているので、集結結果としてはa1の要素である「5」が1つだけとなる。

これが、逆にb2からa1を減算(引き算)すると、集結結果としてb2の「10」が1つだけとなる。

■論理積 (AND)

では、次はCounterオブジェクトに対して論理積 (AND)を実行してみます。論理積 (AND)は、全てが、真(True)であれば真(True)、そうでなければ偽(False)となります。

■コード

import collections

a1 = collections.Counter([1, 2, 3, 4, 6])
b2 = collections.Counter([1, 2, 3, 4, 5])

print(a1 & b2)

a1とb2という変数を定義し、collections.Counter()を用いて、引数,パラメータで角括弧”[ ]”で定義されたリストを渡し、Counterオブジェクトとして保存し、a1とb2にそれぞれ格納します。

その後、a1とb2をビット演算子”&(アンド)”を用いて論理積を実行します。実行後、結果をprint()関数で出力します。

■実行・検証

スクリプトを作成後、このスクリプトを実行してみます。

実行してみると、角括弧”[ ]”で定義されたリストがCounterオブジェクトとして保存され、リスト内の要素(数値)がビット演算子”&(アンド)”を用いたことで、a1変数とb2変数の全ての要素がカウントされ、結果が出力されました。今回は、a1の要素である「6」と、b2の要素である「5」以外は、全てが同じなので、真(True)となり「1」となりました。それ以外は偽(False)となり、print()関数では出力されない。

■備考

「*(乗算)」、「/(除算)」、「%(割った余り)」は、「TypeError: unsupported operand type(s) for」というERRORが出力され、サポートされていない。

コメント

タイトルとURLをコピーしました