こんにちは、ミナトです。
複数の要素をもつデータ型にはリストやタプル、ディクショナリがあります。
今回はリストのように複数の要素を格納できる集合(set)について紹介します。

- 集合(set)の使い方を知りたい
- Pythonでプログラミングを学びたい
集合(set)の使い方
集合とは?
集合はリストのように複数の要素を保持できるデータ型です。
リストの違いは要素が重複しないという点です。
また、インデックスを利用して要素を取り出すことができません。
集合(set)は和集合や差集合などを求める集合演算を扱えます。
集合の定義
集合を定義するには以下のように値を{}
で囲います。
\{値, 値, 値 ・・・\}
s = {1, 2, 3, 4, 5}
print(s)
print(type(s))
## 出力
{1, 2, 3, 4, 5}
<class 'set'>
集合では、要素が重複しないように管理されます。
s = {1, 2, 2, 3, 3, 4, 5}
print(s)
## 出力
{1, 2, 3, 4, 5}
和集合の取得

setの和集合を得るには「|演算子」を利用します。
対称差は論理演算の論理和(OR)と同じような処理です。
s1 = {1, 2, 3}
s2 = {3, 4, 5}
s3 = s1 | s2
print(s3)
## 出力
{1, 2, 3, 4, 5}
差集合の取得

setの差集合を得るには「-演算子」を利用します。
s1 = {1, 2, 3}
s2 = {3, 4, 5}
s3 = s1 - s2
print(s3)
## 出力
{1, 2}
交わりの取得

setの交わりを得るには「&演算子」を利用します。
交わりは論理演算の論理積(AND)と同じような処理です。
s1 = {1, 2, 3}
s2 = {3, 4, 5}
s3 = s1 & s2
print(s3)
## 出力
{3}
対象差の取得

setの対称差を得るには「^演算子」を利用します。
対称差は論理演算の排他的論理和(XOR)と同じような処理です。
s1 = {1, 2, 3}
s2 = {3, 4, 5}
s3 = s1 ^ s2
print(s3)
## 出力
{1, 2, 4, 5}
集合(set)のメソッド
要素の追加
要素を使いするにはaddメソッドを利用します。
s = {1, 2, 3, 4, 5}
s.add(6)
print(s)
## 出力
{1, 2, 3, 4, 5, 6}
要素の削除
集合から要素を削除するにはremoveメソッドを利用します。
s = {1, 2, 3, 4, 5}
s.remove(3)
print(s)
## 出力
{1, 2, 4, 5}
集合を空にする
集合を空にするにはclearメソッドを利用します。
s = {1, 2, 3, 4, 5}
s.clear()
print(s)
## 出力
set()
集合の長さを取得する
集合でデータの長さ(数)を取得するにはlen関数を利用します。
s = {1, 2, 3, 4, 5}
print(len(s))
## 出力
5
集合の中から最大値を取得する
集合の中から最大値を取得するにはmax関数を利用します。
s = {1, 2, 3, 4, 5}
print(max(s))
## 出力
5
集合の中から最小値を取得する
集合の中から最小値を取得するにはmin関数を利用します。
s = {1, 2, 3, 4, 5}
print(min(s))
## 出力
1
集合の要素の合計値を取得する
集合の要素の合計値を取得するにはsum関数を利用します。
s = {1, 2, 3, 4, 5}
print(sum(s))
## 出力
15
まとめ
今回はPythonの集合(set型)について紹介しました。
集合はリストのように複数のデータをまとめて管理できるデータ型で、以下ようなの特徴があります。
- 複数の要素を保持できる
- 要素は重複しないように管理される
- 集合演算を利用できる。
最後まで読んでいただき、ありがとうございます。
この記事が、「面白いな」、「勉強になったな」という方は、ぜひ、SNSでシェアしていただけると嬉しいです。