Python入門 集合(動画あり)

集合について

集合(set)は重複する要素をもたない、順序づけられていない要素の集まりです。
集合は値のない辞書のようなものです。キーだけが存在しています。
そのため、集合は辞書のように順序はありません。 従って、インデックスで呼び出せません。

Set オブジェクトは、和集合、積集合、差集合、排他的論理和(XOR)といった数学的な演算もサポートしています。

集合型は重複要素を持たない性質から、リスト型の要素から重複を取り去りたい場合に集合型にキャストすることで簡単に実現できます。

集合の作り方

set()で作成するか、{}の中にカンマ区切りで値を入れます。

number1 = {1, 2, 3, 4}
print(type(number1))
# number1[0]
# setのままでは呼び出せないのでlistに型変換
number1 = list(number1)
print(type(number1))
number1[0]

結果
class ‘set’
class ‘list’
1

積集合と和集合と差集合と排他的論理和

集合の要素を組み合わせて数学的な演算を行えます。

a の集合が、{1, 2}で、b の集合が{2, 3}のとき、上のようなベン図で表すことができます。
積集合は「&」を使って表して、aとbの共通する要素が該当します。(黄色の背景部分)
和集合は「|」を使って表して、aとbどちらかに所属する要素は該当します。
差集合は「-」を使って表して、aの中からbを取り去って得られる要素が該当します。
排他的論理和は「^」を使って表して、aとbどちらかにだけ属している要素が該当します。

ニューラルネットワークの基本で出てきますが、パーセプトロンはXOR問題を解決できません。
そんな中から生まれたのがニューラルネットワークの考え方です。

a = {1, 2}
b = {2, 3}

# 積集合
a & b
# 結果 {2}

# 和集合
a | b
# 結果 {1, 2, 3}

# 差集合
a - b
# 結果 {1}

# 排他的論理和
a ^ b
# 結果 {1, 3}

参考になった書籍

プログラミングを少しでも経験がありPython の文法を学習する場合は、「入門 Python 3」が良いと思います。長く使えます。

「退屈なことはPython にやらせよう」はオブジェクト指向の解説がないです。代わりにPythonを使った便利な実例が初心者には嬉しい内容です。正規表現から、簡単なスクレイピング 、画像操作などあります。ただし、中級者以上には少し物足りないかもしれません。

サンプルのダウンロード

ここでダウンロードする「set.ipynb」ファイルは、この動画で使用したものです。

set.ipynb

Python入門一覧