[Python]setで集合演算(和集合/差集合/積集合)
Pythonでは集合を扱うset型があり、これらを演算することで集合の演算ができます。
基本的な例を紹介します。
setの宣言
setは波括弧({}
)で囲むことで宣言できます。
重複した値があっても一意な値のみに絞られます。
sample = {1,2,3,2,1}
sample
{1, 2, 3}
listからの変換
listをset()関数でsetに変換することもできます。
set型をlist()関数でlistに戻すこともできますが、
setには順番の概念が無いため、最初のlistの順序は担保されません。
# listの宣言
l = [1,3,2,4,5]
# set変換
l_set = set(l)
l_set
{1, 2, 3, 4, 5}
# setをlist変換
ll = list(l_set)
ll
[1, 2, 3, 4, 5] # 順番は担保されない
集合の演算
集合同士の演算を行ってみます。
サンプルのセット宣言をしておきます。
set_a = {1,2,3,4,5}
set_b = {2,4,6}
和集合
「AとBにあるものすべて」です。
set_add = set_a | set_b
set_add
{1, 2, 3, 4, 5, 6}
差集合
「AにはあるけどBにはないもの」と
「BにはあるけどAにはないもの」です。
set_sub = set_a - set_b
set_sub
{1, 3, 5}
set_sub_2 = set_b - set_a
set_sub_2
{6}
積集合
「AとB両方にあるもの」です。
set_inter = set_a & set_b
set_inter
{2, 4}
終わりに
今回は基本的なもののみですが、他の使い方についても機会があれば書いていきます。
ディスカッション
コメント一覧
まだ、コメントがありません