導入
**集合(set)**は、重複を持たない値の集まりです。「ダブりを消す」「共通するものを求める」といった処理が得意です。
説明
{ } に値を並べて作ります(辞書と違いキー:値ではありません)。同じ値は自動的に1つにまとまります。
nums = {1, 2, 2, 3, 3, 3}
print(nums) # {1, 2, 3}(重複が消える)
print(len(nums)) # 3
リストから重複を消したいときは、set() に通すのが定番です。ダブりが自動でまとまります。
flowchart LR
a["[1, 1, 2, 3, 3, 3]"] -->|"set() に通す"| b["{1, 2, 3}<br/>(重複が消える)"]
data = [1, 1, 2, 3, 3, 3]
unique = set(data)
print(unique) # {1, 2, 3}
集合どうしでは、和・積・差が計算できます。
a = {1, 2, 3}
b = {2, 3, 4}
print(a & b) # {2, 3}(両方にある=積)
print(a | b) # {1, 2, 3, 4}(どちらかにある=和)
print(a - b) # {1}(a だけにある=差)
やってみよう
data の中身を変えて、set() で重複が消えることを確かめましょう。a と b を変えて & や | も試してください。
演習
リスト [3, 1, 3, 2, 1] を set() に通して重複を消し、その要素数を len() で表示してください(結果は 3)。
ヒント1を見る
len(set([3, 1, 3, 2, 1])) で重複を除いた個数になります。