1. はじめに
Pythonには「リスト」「辞書」「集合」「タプル」といった代表的なデータ構造があります。それぞれに特徴と用途があり、正しく使い分けることでコードの可読性・効率性が大きく向上します。
本記事では、Python|リスト・辞書・集合・タプルのデータ構造と使い分け方というテーマのもと、各データ構造の基礎から実用例、注意点までを丁寧に解説します。
Python学習中の方や、データの扱いに悩む初心者〜中級者に向けた内容です。実務に活かせるコツも紹介していますので、ぜひ最後までご覧ください。
2. Pythonの基本データ構造|リスト・辞書・集合・タプルの違いとは
2-1. リスト(list)
リストは複数の要素を順序付きで保持できるデータ構造です。変更(追加・削除・上書き)も可能です。
fruits = ["apple", "banana", "orange"]
print(fruits[1]) # 2番目の要素を取得
実行結果:
banana
2-2. 辞書(dict)
辞書は「キーと値」のペアでデータを保持するデータ構造で、順序は維持されます(Python 3.7以降)。
person = {"name": "John", "age": 30}
print(person["name"]) # キーでアクセス
実行結果:
John
2-3. 集合(set)
集合は重複を許さず、順序も保持しないデータ構造です。重複を排除したい場合に便利です。
numbers = {1, 2, 3, 2, 1}
print(numbers) # 重複は除外される
実行結果:
{1, 2, 3}
2-4. タプル(tuple)
タプルはリストに似ていますが、要素を変更できない不変型です。読み取り専用のデータに使います。
point = (10, 20)
print(point[0]) # 1番目の要素を取得
実行結果:
10
3. よくある使い方・応用例
3-1. リストのループ処理と条件分岐
複数のデータを順番に処理したい場合、リストとfor文はよく使われます。
numbers = [1, 2, 3, 4, 5]
for n in numbers:
if n % 2 == 0:
print(f"{n}は偶数です")
実行結果:
2は偶数です
4は偶数です
3-2. 辞書でデータベース風の扱い
名前付きのデータを管理したい場合、辞書は非常に便利です。
user = {"id": 101, "name": "Alice", "email": "alice@example.com"}
for key, value in user.items():
print(f"{key}: {value}")
実行結果:
id: 101
name: Alice
email: alice@example.com
3-3. 集合で重複を排除する
リストの重複要素を削除したいときは集合(set)に変換します。
names = ["Tom", "Jane", "Tom", "Bob"]
unique_names = set(names)
print(unique_names)
実行結果:
{'Bob', 'Jane', 'Tom'}
3-4. タプルを複数代入に使う
タプルは関数の戻り値で複数の値を返す場面にも使われます。
def get_position():
return (100, 200)
x, y = get_position()
print(x, y)
実行結果:
100 200
4. 注意点・エラー対策
4-1. リストとタプルの混同
リストとタプルは見た目が似ていますが、リストは変更可能、タプルは変更不可という違いがあります。
例えば、タプルを変更しようとするとエラーになります。
t = (1, 2, 3)
# t[0] = 10 # TypeError: 'tuple' object does not support item assignment
4-2. 辞書で存在しないキーにアクセス
存在しないキーにアクセスするとエラーが出ます。get()
メソッドを使うと安全です。
person = {"name": "Bob"}
print(person.get("age", "不明")) # キーがなければ「不明」を返す
実行結果:
不明
5. まとめ
- リスト:順序あり・変更可能。よく使うデータ構造
- 辞書:キーと値のペア。データベース的に使える
- 集合:重複排除・集合演算向き
- タプル:変更不可。複数戻り値や定数的用途に便利
Pythonのデータ構造は、適切に使い分けることでコードの効率化・保守性向上に繋がります。実務では「ユーザー情報を辞書で管理」「入力データの一時保存にリスト」「一意な値を集合で管理」など、場面に応じて選択するとよいでしょう。
これらの基本を理解することは、Pythonプログラミング全体の土台となります。まずはそれぞれの特徴を実際に書いて確かめてみましょう!