本文へスキップ
BecomeCoder

Pythonコース · 第3章 コレクション ― 複数の値をまとめる · レッスン12

集合 ― 重複しない値の集まり

ブラウザで完結

導入

**集合(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() で重複が消えることを確かめましょう。ab を変えて &| も試してください。

演習

リスト [3, 1, 3, 2, 1]set() に通して重複を消し、その要素数len() で表示してください(結果は 3)。

ヒント1を見る

len(set([3, 1, 3, 2, 1])) で重複を除いた個数になります。

実際に動かしてみよう

下のエディタにPythonを書いて「実行」を押すと、ブラウザ内のPythonで出力が表示されます。本文の例をそのまま試したり、書き換えたりしてみましょう(input() を使う回は「標準入力」欄に値を入れてから実行します)。

Python — ブラウザ内で実行

ブラウザ内でPythonを動かす環境(Skulpt)を読み込みます(初回のみ少し時間がかかります)。
スクロールして表示された時点でも自動で読み込まれます。