Set

  • セットの概要
    • 要素の重複を許さない
    • 要素には変更不可能なオブジェクトしか指定できない
    • 集合演算が可能
    • 変更可能なセット(set)と変更不可能なフローズンセット(frozenset)がある

  • セットの作成
    • set関数・frozenset関数を使う
      • リストやタプルなどのiterable(反復可能)なオブジェクトからセットを作成する
      • ネストした辞書やリストなど、それら自身の要素に変更可能なオブジェクトを含む場合はTypeErrorとなる
set(iterableオブジェクト)
frozenset(iterableオブジェクト)
    • 要素の論理和から作る
      • 指定したオブジェクトに含まれる全ての要素を持ったセットを作成する
セット.union(iterableオブジェクト)
    • 要素の論理積から作る
      • 指定したオブジェクトに共通して含まれる要素を持ったセットを作成する
セット.intersection(iterableオブジェクト)
    • 要素の差集合から作る
      • 指定したオブジェクトに含まれない要素を持ったセットを作成する
セット.difference(iterableオブジェクト)
    • 要素の対称差から作る
      • 指定したオブジェクトに共通して含まれる要素以外の要素を持ったセットを作成する
セット.symmetric_difference(iterableオブジェクト)
    • 集合演算子を使う
      • 和集合
set(iterableオブジェクト) | set(iterableオブジェクト)
      • 共通集合
set(iterableオブジェクト) & set(iterableオブジェクト)
      • 差集合
set(iterableオブジェクト) - set(iterableオブジェクト)
      • 対称差
set(iterableオブジェクト) ^ set(iterableオブジェクト)

  • セットの読み込み
    • forループによる要素の取得
      • セットは順序を持っていないので、取り出す順序は定まっていない
for 要素 in set(iterableオブジェクト):
                print(要素)
    • 部分集合の確認をする
      • 全要素が指定したオブジェクトの要素に含まれているか調べる
セット.issubset(iterableオブジェクト)
    • 上位集合の確認をする
      • 指定したオブジェクトの全要素が含まれているか調べる
セット.issuperset(iterableオブジェクト)
    • 要素の存在の確認をする
      • 指定した要素が含まれている場合はTrue、そうでなければFalseを返す
検索要素 in セット
    • 要素の数の確認をする
      • セットの要素数を返す
len(セット)

  • セットの更新
    • 要素を追加する
      • 新しい要素をセットに追加する
      • その要素が既に存在する場合は何も追加されない
セット.add(追加要素)
    • 要素の論理和で更新する
      • 指定したオブジェクトに共通して含まれる要素以外を追加してセットを更新する
セット.update(iterableオブジェクト)
    • 要素の論理積で更新する
      • 指定したオブジェクトに共通して含まれる要素のみを残してセットを更新する
セット.intersection_update(iterableオブジェクト)
    • 要素の差集合で更新する
      • 指定したオブジェクトの要素を削除してセットを更新する
セット.difference_update(iterableオブジェクト)
    • 要素の対称差で更新する
      • 指定したオブジェクトに共通して含まれる要素を削除してセットを更新する
セット.symmetric_difference_update(iterableオブジェクト)
    • 代入演算子を使う
      • 和集合
set(iterableオブジェクト) |= set(iterableオブジェクト)
      • 共通集合
set(iterableオブジェクト) &= set(iterableオブジェクト)
      • 差集合
set(iterableオブジェクト) -= set(iterableオブジェクト)
      • 対称差
set(iterableオブジェクト) ^= set(iterableオブジェクト)

  • セットの削除
    • 要素を指定して削除する
      • 指定した要素を削除する
      • removeメソッドは、指定した要素がない場合にKeyError例外が発生する
      • discardメソッドは、指定した要素がなくてもKeyError例外は発生しない
セット.remove(削除する要素)
セット.discard(削除する要素)
    • 要素を取り出して削除する
      • 指定した要素を取り出して、削除する
      • 取り出される順番はわからない
      • 指定した要素が存在しない場合、KeyError例外が発生する
セット.pop(削除する要素)
    • 要素を全て削除する
      • 全ての要素を削除する
セット.clear

  • その他のセットの操作
    • セットの比較
      • 等価比較(全要素の同一性を比較)
セット == セット
セット != セット
      • 大小比較
        • ">=" は issubset と同義
        • "<=" は issuperset と同義
        • ">" は左辺が右辺の上位集合かを判定
        • "<" は左辺が右辺の部分集合かを判定
セット >= セット
セット > セット
セット <= セット
セット < セット
      • is比較(オブジェクトそのものの同一性を比較)
セット is セット
    • セットのコピー
セット.copy()
set(set型オブジェクト)
copy.deepcopy(set型オブジェクト)

Comments