Pythonデータ型-集合

2681 ワード

集合の基本的特徴
  • の集合は、可変、無秩序、要素の重複のない非線形データ構造
  • である.
  • のセットは反復可能であるが、無秩序のためインデックスできない
  • コレクションの初期化
  • setl = set():空の集合を新規作成
  • dict = {}:新しい辞書オブジェクト(注意)
  • setl = {ele1, ele2,..., elen}:上記の要素を含む新しいセットを作成します.
  • ele:ハッシュ可能なタイプ(不変のタイプ)でなければならない
  • ハッシュできないタイプ:リスト、コレクション、bytesarray
  • setl = set(iterable):反復可能なオブジェクトを使用してセット
  • を初期化する.
    集合の一般的な方法
  • set追加要素
  • set.add(elem):コレクションに要素を追加
  • setにこの要素がある場合、
  • は何もしない.
  • set.update(*iterable):反復可能なオブジェクトの要素をsetに追加
  • iterable:反復可能なオブジェクト、1つ以上の
  • はその場で修正し、setの要素
  • を直接修正する.

  • set要素の削除
  • set.remove(elem):setから要素を削除
  • 戻りタイプNone、その場で
  • を修正
  • setにelemが存在しない場合、KeyError異常
  • が投げ出される
  • set.discord(elem):setから要素を削除
  • 戻りタイプNone、その場で
  • を修正
  • setにelemが存在しない場合、
  • は何もしない.
  • set.pop():setから要素をランダムにポップアップ
  • はset内の要素を返し、set要素は
  • 減少する.
  • pop関数はインデックスを指定せず、返される要素はランダムな
  • である.
  • setが空の集合である場合、KeyError異常
  • に戻る.
  • set.clear():コレクション内のすべての要素を消去
  • setのメンバーメソッド
  • x in set:要素xはsetにあります
  • 時間複雑度はO(1)--ハッシュインデックス、クエリ時間はデータサイズに関係なく
  • x not in set:要素xがsetにない
  • 時間複雑度時O(1)--ハッシュインデックス、クエリ時間はデータサイズに関係なく

  • シーケンス構造でのメンバーメソッドの使用は推奨されず、効率差しゅうごうえんざん
  • 並列
  • set1.union(*set2):集合間の並列を求める
  • set2:複数の集合を表す
  • は新しい集合を返し、
  • をその場で修正しない.
  • set1 | set2:パラレルセット、新しいセット
  • を返します.
  • set1.update(*set2)等価set1 |= set2:その場で
  • を修正する.

  • 交差
  • set1.intersection(*set2):集合間の交差を求める
  • set2:複数の集合を表す
  • は新しい集合を返し、
  • をその場で修正しない.
  • set1 & set2:交差し、新しい集合
  • を返します.
  • set1 &= set2:現地修正

  • 差分セット
  • set1.difference(*set2):集合間の差を求める
  • はset 1に存在するが、set 2に含まれない要素
  • である.
  • set2:複数の集合を表す
  • set1 - set2:差分セットを求め、新しいセット
  • に戻る
  • set1 -= set2:現地修正

  • 対称差セット
  • set1.symmetric_differece(set2)
  • はset 1とset 2の交差に属さない残りの要素
  • を表す.
  • set1 ^ set2:新しい集合
  • を返す
  • set1 ^= set2:set 1
  • をその場で修正する

  • サブセット、スーパーセット判定
  • < > <= >=:含む関係からサブセット、スーパーセット
  • を判定できる.
  • issubset:タイミングサブセット
  • issuperset:スーパーセット
  • かどうか
  • set1.isdisjoint(set2):交差があるかどうか