Python3入門 初心者向け set型の使い方

set型

set型は集合と呼ばれるデータの塊で同一の値を保持しない性質をもった型です。
つまり、List型のように重複した値が存在することはありません。
また、tuple型と違い要素の追加や変更、削除操作は可能ですが、格納順序は保証しないため、インデックスによる値の取得はできません。

なぜset型を使うのか

なぜset型を使用するのかというと
・重複した値は保持したくない
・集合演算を使用したい
といったことが挙げられます。

set型の定義

定義の仕方は「変数=(イコール){値(カンマ区切り)}」となり、値については数値や文字列、リスト型等をカンマ区切りで記述します。

  1. 定義方法1 数値のデータ群

    任意の変数に複数の数値を代入します。
    set1(任意の変数名)={1,2,3,4,5}(波括弧内にカンマ区切りで数値を記述)と入力します。

    以下の画像は実施例と作成した変数「set1」内に存在する値の確認になります。
    set1

  2. 定義方法2 文字のデータ群

    set2(任意の変数名)={‘あ’,”い”,’u’,”E”,’O’}(波括弧内にカンマ区切りでシングルクォーテーション括り、若しくは、ダブルクォーテーション括りの文字列を記述)と入力します。

    以下の画像は実施例と作成した変数「set2」内に存在する値の確認になります。
    set2

  3. 定義方法3 数値と文字のデータ群

    set3(任意の変数名)={1,’2’,3,”四”,5}(波括弧内にカンマ区切りで数値とシングルクォーテーション括り、若しくは、ダブルクォーテーション括りの文字列を記述)と入力します。

    以下の画像は実施例と作成した変数「set3」内に存在する値の確認になります。
    set3

set型の使い方

set型を使う方法としてset型機能としてのメソッドを使用する方法と論理演算等を組み合わせた方法等があります。

set001
set型のメソッド使用例

set002
set型と論理演算の使用例

メソッドの種類と使い方

set型で使用するメソッドで使用頻度の高い種類を簡単に説明します。

  1. set型変数名.add(追加する値)

    addメソッドを使用すると、対象のset型変数に対して括弧内に記述した値を最後尾に追加します。
    set型変数の中にすでに存在する値を追加しようとしても、2つ以上の同一の値が格納されることはありません。

    set4

  2. set型変数名.remove(削除したい値)

    removeメソッドを使用すると、対象のset型変数内にある要素で括弧内に記述した値が存在すれば、set要素から削除されます。

    set5

    但し、要素内に値が存在しない場合はエラーが発生します。
    set6

  3. set型変数名.clear()

    clearメソッドを使用すると、対象のset型変数内に格納されている要素を全て削除する処理を実施します。

    set7

  4. set型変数名.union(データ)

    unionメソッドを使用すると、対象のset型変数内に格納されている要素と引数として渡したデータを元にした和集合を結果として返す処理を実施します。

    set8

  5. set型変数名.intersection(データ)

    intersectionメソッドを使用すると、対象のset型変数内に格納されている要素と引数として渡したデータを元にした積集合を結果として返す処理を実施します。

    set9

  6. set型変数名.difference(データ)

    differenceメソッドを使用すると、対象のset型変数内に格納されている要素から引数として渡したデータを差し引いた(差集合)を結果として返す処理を実施します。

    set10

  7. set型変数名.symmetric_difference(データ)

    symmetric_differenceメソッドを使用すると、対象のset型変数内に格納されている要素から引数として渡したデータを元に排他演算の結果として返す処理を実施します。

    set11

論理演算との組み合わせ

論理演算で使用頻度の高い和集合、積集合、差、否定を簡単に説明します。

  1. 和集合

    「|」(パイプ)記号を使用して、対象のデータを元にした演算処理を実施し、全てのデータを返します。
    同じ処理と実施するメソッドは「union」メソッドになります。

    set12
    ※set1とset3の値を全て返しますが、共通する値は2回以上返しません。

  2. 積集合

    「&」(アンド)記号を使用して、対象のデータを元にした演算処理を実施し、共通するデータを返します。
    同じ処理と実施するメソッドは「intersection」メソッドになります。

    set13
    ※set1からset3で共通する値のみ返します。

  3. 「-」(マイナス)記号を使用して、対象のデータを元にした演算処理を実施し、差分のデータを返します。
    同じ処理と実施するメソッドは「difference」メソッドになります。

    set14
    ※set1からset3で共通する値を差し引いた分のset1の値を返します。

  4. 排他

    「^」(キャロット)記号を使用して、対象のデータを元にした演算処理を実施し、排他されたデータを返します。
    同じ処理と実施するメソッドは「symmetric_difference」メソッドになります。

    set15
    ※set1とset3で共通しない値を返します。

補足

set型変数に追加するには、tuple型に変換する必要があります。

例1 list追加失敗、tuple追加成功
set_list_tuple
list型を追加するにはtuple型に変換する必要があり、変換方法の一つにtupleのコンストラクタを使用する方法があります。

例2 listの変換追加成功
set_list_tuple2

最後にこのサイトが、これからPythonを扱うあなたの技術向上の手助けになれば幸いです。

  • このエントリーをはてなブックマークに追加
  • LINEで送る

コメントを残す

*