はじめに
前回は「キー」と「値」をペアで扱う「辞書」について学びました。
この記事は、以下の記事の続きです。
今回は、複数のデータをまとめて扱う他のデータ構造である**「タプル」と「集合(セット)」**について解説します。
これらを使い分けることで、より安全で効率的なコードが書けるようになります。
1. タプル (Tuple) とは?
タプルは、複数の要素を順序立てて並べたものですが、最大の特徴は**「後から要素を変更できない(イミュータブル)」**という点です。
タプルの書き方
丸括弧 () を使って作成します。
# タプルの作成
fruits = ("apple", "banana", "cherry")
print(fruits)
print(type(fruits))
実行結果
('apple', 'banana', 'cherry')
<class 'tuple'>
注意:
要素が1つのタプル 要素が1つだけのタプルを作る場合は、末尾にカンマが必要です。
single_tuple = ("apple",)
と書かないと、単なる文字列として扱われてしまいます。
タプルとfor文の組み合わせ
リストと同じように、for文を使って要素を一つずつ取り出すことができます。
dimensions = (1920, 1080)
for dimension in dimensions:
print(dimension)
実行結果
1920
1080
2. 集合 (Set) とは?
集合(セット) は、「重複した値を持てない」という特徴を持つデータ構造です。また、辞書と同様に要素に順序がありません。
集合の書き方
波括弧 {} を使って作成します。
# 集合の作成(redが重複している)
colors = {"red", "blue", "green", "red"}
# 表示すると重複が自動的に消えている
print(colors)
実行結果 (順序は実行ごとに変わる場合があります)
{'blue', 'green', 'red'}
集合演算
集合を使うと、数学の「和集合」や「積集合」といった計算を、非常にシンプルに記述できます。
set_a = {1, 2, 3, 4} # グループA
set_b = {3, 4, 5, 6} # グループB
# 和集合:どちらかのグループにあるもの(全部)
print(f"和集合 (|): {set_a | set_b}")
# 積集合:両方のグループに共通してあるもの
print(f"積集合 (&): {set_a & set_b}")
# 差集合:AにあってBにはないもの
print(f"差集合 (-): {set_a - set_b}")
実行結果 (順序は実行ごとに変わる場合があります)
和集合 (|): {1, 2, 3, 4, 5, 6}
積集合 (&): {3, 4}
差集合 (-): {1, 2}
イメージ図
グループA グループB
( 1, 2 [ 3, 4 ] 5, 6 )
↑
共通部分(積集合)
3. タプル・集合とfor文の組み合わせ
タプルや集合も、リストと同じように for 文を使って中の要素を一つずつ取り出すことができます。
タプルをループで回す
タプルは順序が維持されるため、定義した順番通りにデータを取り出すことができます。
# 座標データなどの変更したくない値をタプルで管理
point = (10, 20, 30)
for value in point:
print(f"値: {value}")
実行結果
値: 10
値: 20
値: 30
集合をループで回す
集合は「重複がない」という特性を活かして、ユニークな要素だけを処理したい時に便利です。 (※)
※集合には順序がないため、取り出される順番は保証されません。
# 重複を含むリストを一度集合(set)に変換して、一意な要素だけを取り出す
raw_data = ["Python", "Java", "Python", "Swift", "Java"]
unique_languages = set(raw_data)
for lang in unique_languages:
print(lang)
実行結果
Swift
Python
Java
4. 辞書・タプル・集合の比較表
これまで学んできた主なデータ構造の違いをまとめました。用途に合わせて最適なものを選べるようになりましょう。
| データ型 | 記号 | 形式 | 重複 | 変更 | 主な用途 |
|---|---|---|---|---|---|
| タプル | () |
value |
あり | 不可 | 座標や設定値など、書き換えを禁止したいデータ |
| 集合 | {} |
value |
不可 | 可 | 重複データの除去、共通項の抽出(集合演算) |
まとめ
今回は「タプル」と「集合」について学習しました。
-
タプル:
- 書き換えができないリストのようなもの。
- プログラム全体で共有する固定データ(定数)の管理に最適。
-
集合:
- 重複を許さないデータの箱。
- データの重複チェックや、数学的なグループ比較(共通要素の抽出など)に強力。
-
反復処理:
- タプルも集合も、リストと同様に
for文で簡単に中身を取り出すことができる。
- タプルも集合も、リストと同様に
これまでに学んだ「リスト」「辞書」「タプル」「集合」の4つが、Pythonにおけるデータ管理の基本となります。これらをマスターすれば、効率的なプログラムを書くための準備は万端です!
次回予告:Python入門⑦(スライス)
次回からは、リストやタプルを使用するのに必要なスライスについて解説します。