Pythonのセット(set)型とは?基本操作と主要メソッドを徹底解説
セット(set)は、重複しないハッシュ可能なオブジェクトを格納する「順序を持たないコレクション」です。和集合・積集合・差集合といった数学的な集合演算に利用できるほか、リストなどから重複要素を取り除く用途でもよく使われます。
セットは要素の位置を記録しないため、インデックス指定やスライスなど、シーケンス型で利用できる操作はサポートされていません。
Pythonには、setとfrozensetという2種類のセット型が用意されています。setはミュータブル(変更可能)であるのに対し、frozensetはイミュータブル(変更不可能)です。そのため、setに対してはadd()やremove()などの要素追加・削除操作が可能ですが、frozensetではこれらの操作を行うことができません。
以下に、セットに関する代表的なメソッドと操作を紹介します。
len(s) メソッド
セットsに含まれる要素の個数を返します。
x in s / y not in s 演算
inおよびnot inは、要素がセットに含まれているかどうかを判定するメンバーシップ演算です。「x in s」は値xがセットs内に存在する場合にTrueを、「y not in s」は要素yが存在しない場合にTrueを返します。
isdisjoint(other_set) メソッド
現在のセットとother_setが互いに素(共通要素を持たない)かどうかを判定します。1つでも共通の要素が存在する場合はFalseを返します。
issuperset(other_set) メソッド
other_setのすべての要素が現在のセットにも含まれている場合にTrueを返します。つまり、現在のセットがother_setの上位集合(スーパーセット)であるかどうかをチェックします。
union(other_set) メソッド
現在のセットとother_setのすべての要素を集めた新しいセット(和集合)を返します。
intersection(other_set) メソッド
現在のセットとother_setに共通して含まれる要素だけを集めた新しいセット(積集合)を返します。
difference(other_set) メソッド
現在のセットから、other_setとの共通要素を除いた要素だけで構成される新しいセット(差集合)を返します。
add(elem) メソッド
セットに要素elemを追加します。
discard(elem) メソッド
セットから要素elemを削除します。elemがセット内に存在しない場合でもエラーは発生しません。一方、類似のremove()メソッドは、指定した要素が存在しない場合にKeyErrorを発生させる点が異なります。
サンプルコード
mySet1 = {1, 2, 5, 6}
mySet2 = {8, 5, 3, 4}
mySet3 = set(range(15)) # 0から14までの全要素を含むセット
mySet4 = {10, 20, 30, 40}
print(set(mySet1.union(mySet2)))
print(set(mySet1.intersection(mySet2)))
print(set(mySet1.difference(mySet2)))
print(mySet3.issuperset(mySet1))
print(mySet1.isdisjoint(mySet4))
mySet4.add(45)
print(mySet4)
mySet4.discard(40)
print(mySet4)
実行結果
set([1, 2, 3, 4, 5, 6, 8]) set([5]) set([1, 2, 6]) True True set([40, 10, 20, 45, 30]) set([10, 20, 45, 30])
※上記の出力形式はPython 2系のものです。Python 3系では、セットは「{1, 2, 3, 4, 5, 6, 8}」のように波括弧形式で表示されます。
-
Python Tkinterのafter()メソッドの使い方を徹底解説
Tkinterは、PythonでGUIアプリケーションを作成するための標準ライブラリです。ウィンドウやボタン、ラベルなどのウィジェットを作成・操作するための組み込みメソッドが多数用意されており、データの表示やGUIイベントの処理を簡単に実装できます。本記事では、その中でも特に便利なafter()メソッドの使い方について、具体的なコード例とともに詳しく解説します。after()メソッドの基本構文.after(delay, FuncName=FuncName)このメソッドは、指定した遅延時間(ミリ秒単位)が経過した後に、引数として渡した関数FuncNameを呼び出します。タイマー処理や定期的な更新
-
Pythonのセット(set)とは?作成・操作・結合の基本を徹底解説
Pythonのセット(set)は、順序を持たない(unordered)コレクション型で、重複のない一意な(unique)かつ変更不可能な(immutable)オブジェクトを格納します。つまり、セットに同じ要素を複数入れることはできず、一度作成した要素そのものを書き換えることもできません。 ポイント: セットの「要素」はイミュータブル(変更不可)ですが、セット自体はミュータブル(変更可能)です。そのため、後から要素の追加や削除を行うことは可能です。 セットは順序を保持しません。同じセットを何度 print しても、表示される要素の並び順が変わることがあります。 Pythonでは、セットを波括弧