一覧へ

Pythonのリストと辞書

Pythonのリストと辞書の違いと、どちらをいつ使うべきかを例を通して学びます。

入門
|
8
|
検証済み (2026-07)
リスト辞書データ型コレクションキーと値のペア
進捗0/18 (0%)

Pythonのリストと辞書

このトピックを修了すると

リストと辞書の相違点を説明し、状況に応じて適切に使い分けることができるようになります。


リスト — 順序付けられたコレクション

リストは、複数の値を順序付けて格納するコンテナです。角括弧 [] で作成します。

python
fruits = ["リンゴ", "バナナ", "ブドウ"]
# インデックスによるアクセス
print(fruits[0]) # 'リンゴ'
print(fruits[-1]) # 'ブドウ'
# 値の変更
fruits[1] = "イチゴ" # ['リンゴ', 'イチゴ', 'ブドウ']
# 値の追加/削除
fruits.append("マンゴー") # 末尾に追加
fruits.insert(0, "スイカ") # 0番目の位置に挿入
fruits.remove("ブドウ") # 値で削除
del fruits[0] # インデックスで削除

リストは可変 (mutable) です。作成後に自由に修正、追加、削除できます。


リストの反復処理と加工

python
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
# 反復処理
for n in numbers:
print(n, end=" ") # 3 1 4 1 5 9 2 6
# ソート
sorted_nums = sorted(numbers) # [1, 1, 2, 3, 4, 5, 6, 9] — 元のリストは変更しない
numbers.sort() # 元のリスト自体をソート
# 便利な組み込み関数
print(len(numbers)) # 8
print(sum(numbers)) # 31
print(min(numbers)) # 1
print(max(numbers)) # 9
# リスト内包表記 — 1行で新しいリストを作成
squares = [x ** 2 for x in range(5)]
# [0, 1, 4, 9, 16]

リスト内包表記は、for ループを1行に圧縮したものです。Pythonコードで非常に頻繁に見られるため、慣れておく必要があります。


辞書 — 名前で検索するストア

辞書は、キーと値のペアとしてデータを格納します。中括弧 {} で作成します。

python
user = {
"name": "キム・フン",
"age": 30,
"email": "hoon@example.com"
}
# 検索
print(user["name"]) # 'キム・フン'
print(user.get("phone")) # None (エラーの代わりにNoneを返す)
# 値の追加/更新
user["phone"] = "010-1234" # キーが存在しない場合は追加
user["age"] = 31 # キーが存在する場合は更新
# 値の削除
del user["email"]

リストが「何番目?」(インデックス)で検索するのに対し、辞書は「名前は?」(キー)で検索します。キーは通常文字列ですが、数値やタプルも使用できます。


辞書の反復処理

python
scores = {"国語": 90, "英語": 85, "数学": 95}
# キーの反復処理
for subject in scores:
print(subject) # 国語、英語、数学
# キーと値の同時反復処理
for subject, score in scores.items():
print(f"{subject}: {score}点")
# 値のみの反復処理
total = sum(scores.values())
print(f"合計点: {total}") # 270
# キーの存在確認
if "科学" in scores:
print(scores["科学"])
else:
print("科学の点数はありません")

.items()(キー, 値) のペアを返します。.keys() はキーのみ、.values() は値のみを返します。


リスト vs 辞書 — いつ、何を

状況選択理由
順序が重要 (1番、2番、3番...)リストインデックスで順序を保証
名前で検索する必要がある ("name", "age")辞書キーで即座にアクセス
重複する値は許可するリスト[1, 1, 2, 3] が可能
キーは一意である必要がある辞書同じキーを2回入れると上書きされる
100万件から検索辞書キー検索 O(1) vs リスト検索 O(n)

実務で最も一般的なパターンは、辞書のリストです。データベースのテーブルをイメージしてください。

python
users = [
{"name": "キム・フン", "age": 30},
{"name": "イ・ス", "age": 25},
{"name": "パク・ジン", "age": 35},
]
# 30歳以上のユーザーをフィルタリング
seniors = [u for u in users if u["age"] >= 30]

JSONファイル、APIレスポンス、設定ファイルなど、ほとんどがこの「辞書のリスト」の形式です。この2つのデータ型を自由に組み合わせることができれば、Pythonによるデータ処理の基本を習得したことになります。

💬 質問・コメント

0件のコメント

ログインせずに投稿できます。ゲスト投稿は投稿者自身で編集・削除できません。

0/2000

読み込み中...