これまで「リストに集めて返す」方法を紹介しました。今回はさらに応用して、条件ごとに分類して辞書形式で返す方法を説明します。辞書(dict)は「キーと値のペア」でデータを整理できるので、分類やグループ分けに便利です。
サンプルコード
def search_values_dict():
results = {
"small": [], # 30未満の結果を入れる
"medium": [], # 30以上50未満の結果を入れる
"large": [] # 50以上の結果を入れる
}
for A in range(1, 6):
for B in range(1, 6):
for C in range(1, 6):
result = A * B * C
if result % 2 == 0: # 偶数はスキップ
continue
# 条件ごとに分類して辞書に追加
if result < 30:
results["small"].append((A, B, C, result))
elif result < 50:
results["medium"].append((A, B, C, result))
else:
results["large"].append((A, B, C, result))
return results
# 呼び出し側
found_dict = search_values_dict()
print("=== small ===")
for item in found_dict["small"]:
print(item)
print("=== medium ===")
for item in found_dict["medium"]:
print(item)
print("=== large ===")
for item in found_dict["large"]:
print(item)
Python実行結果(抜粋)
=== small ===
(1, 1, 1, 1)
(1, 1, 3, 3)
(1, 3, 3, 9)
...
=== medium ===
(3, 3, 5, 45)
(5, 3, 3, 45)
...
=== large ===
(5, 5, 3, 75)
(5, 3, 5, 75)
...
解説ポイント
- 辞書のキー →
"small","medium","large"のように分類名を設定。 - 辞書の値 → 条件に一致したタプル
(A, B, C, result)をリストとして格納。 - 呼び出し側 → キーを指定して取り出せるので、分類ごとに結果を整理できる。
応用の場面
- データ分析: 値を範囲ごとに分類して返す。
- 検索機能: カテゴリごとに一致結果を整理。
- ゲーム処理: スコアを「低・中・高」で分類して返す。
まとめ
- リスト返却 → 条件に一致した値を全部まとめる。
- 辞書返却 → 条件ごとに分類して整理できる。
- キーと値のペアを使うことで「どの条件に一致したか」が一目でわかる。


