Pyhton セット

はじめに

みなさんこんにちはALEXです。。今日はPythonのセット型について説明します。setとは、集合を扱う型です。リスト・タプルのように、セット型も複数の値を格納することができます。リストとの大きな違いは「重複した要素がない」 」「要素に順番がない」ということです。

セット型の基本的な使いかた

まずは実際にコードを書いて、セット型を使用してみましょう。セット型オブジェクトを以下の通り書いてみます。

以下の通り出力されます。

セット型は set([要素]) という構文で書きます。 出力は{要素、要素、・・}という型式で表示されます。 newset1、newset2の相違は、newset2にnewset1の要素が逆順に格納されています。ですが、print関数で出力された結果は全く同じです。これはさきほどご説明したセット型の特徴「重複した要素がない」 によるものです。 次に以下のように入力してみましょう。

以下のように出力されます。

newset2はnewset1に対し逆順に要素が格納されていますが、出力結果は全く同じです。これは」「要素に順番がない」ということによるものです。
 

要素の追加

次に要素を追加してみましょう。以下の通りに記述します。

以下のように出力されます。

 
一行目:newsetオブジェクトにセットを記述します。 二行目:オブジェクト.add(追加する要素)と記述します。

要素の削除

次に要素を削除してみましょう。以下の通りに記述します。

以下のように出力されます。

 

 

一行目:newsetオブジェクトにセットを記述します。 二行目:オブジェクト.remove(追加する要素)と記述します。 存在しない要素を削除するとエラーが発生するので注意が必要です。 すべての要素を削除するのにはclearメソッドを使用します。

以下の通り出力されます。

セットで使える演算 セット型オブジェクトでは以下のような集合の計算を簡単に行うことができます。 ・和集合 ・積集合 ・差集合 ・排他的論理和集合 これはかなり便利です。実際に使ってみましょう。  

和集合の計算

二つのセット型オブジェクトの要素を全て持ったセット型オブジェクトが生成されます。

 

積集合の計算

二つのセット型オブジェクトの要素で、どちらの集合にも存在している要素を持ったセット型オブジェクトが生成されます。

差集合の計算

二つのset型オブジェクトX,Yの要素で、XからXとYの積集合を削除した要素を持ったセット型オブジェクトが生成されます。

 

排他的論理和集合の計算

二つのset型オブジェクトX,Yの要素で、XとYで共通した要素以外を足し合わせた要素を持ったセット型オブジェクトが生成されます。

 

まとめ

いかがでしょう。Pythonでとりあつかうリスト、タプル、辞書についてセットをご紹介しました。この4つのデータ型をうまく使い分けてコードを書いていきましょう。