1|2|3|4集合を更新する:updateメソッド/difference_updateメソッド/intersection_updateメソッド/symmetric_difference_updateメソッドここまでに見てきた、集合の和/差/積/対称差を求める操作はいずれも、複数の集合(メソッドを使った場合は反復オブジェクトのこともある)から新しい集合を作成するものだった。和/差/積/対称差を求めて、それらで元の集合を更新することも可能だ。集合2」により「集合1と集合2の和を求めて、それを集合1の値とする」といった操作が可能だということだ。これらの操作についても、和/差/積/対称差を求めるメソッドと演算子が用意されている。メソッドには全て「update」という語が含まれていることに注目しよう。和/差/積/対称差を求めて、元の集合を更新するメソッドと演算子これらのメソッドと演算子の基本的な使い方は上で紹介したものと同様だ。......」のように複数の集合をつなげて記述できる点には注意しよう。集合2」は「集合1と集合2の和で集合1を更新する」操作である点にも注意が必要だ(前者では集合1は、以前とは別のオブジェクトを参照するが、後者はあくまでも元の集合1を更新する処理となる)。以下に幾つか例を示す。実行結果を以下に示す。実行結果frozensetここまで見てきた集合は「変更可能」つまり、要素を追加したり、削除したりといった操作が可能だった。その一方で、Pythonでは「frozenset」を利用することで、一度作成したら、その要素を変更できない集合を作成できる。frozensetを作成するには、frozenset関数に集合や反復可能オブジェクトを渡す。frozenset関数frozenset([iterable])iterableの要素を基にfrozensetオブジェクトを作成する。説明iterablefrozensetオブジェクトの要素を含んだ集合や反復可能オブジェクト(省略可能)。以下に実行結果を示す。実行結果この例では、frozensetオブジェクトを作成した後に、addメソッドで要素を追加しようとしているが、frozensetにはaddメソッドがないのでエラー(AttributeError例外)が発生している。frozensetは変更不可能(イミュータブル)なので、本稿で紹介してきた操作の中で、要素を追加したり削除したりするものと(add/remove/discard/clear/popメソッド)、自身を更新するメソッドや演算子は利用できない。プログラムの中では、起動時に一定の要素が決められ、その実行期間中はそれらが変更することがないデータの集まりもある。した場合には、frozensetオブジェクトでそれらを表現できる。通常の集合は変更可能なので、辞書のキーには使えないが、frozensetは変更不可能なので辞書のキーとして使える。InsiderとInsider.NETを「deep_and_net」というfrozensetにまとめて、その両方のフォーラムを担当する編集者として'isshiki'と'kawasaki'をアサインしているコードだ。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。