はじめに
今回は、
複数の計算結果を dict にまとめて返す関数 を学習しました。
これまで、
len()sum()- 平均値の計算
- 条件分岐(OK / WARN / ERROR)
を個別に使ってきましたが、
それらを 1つの関数にまとめる ことで、
- 処理が整理される
- 表示が読みやすくなる
- 実務っぽいコードになる
という気づきがありました。

今回のテーマ
計算結果を dict にまとめて返す
- 件数(count)
- 合計(sum)
- 平均(avg)
- 判定結果(level)
を 1つの戻り値 として扱います。
使用したデータ
numbers = [35, 7, 26, 59, 55, 73, 90, 24, 13, 28,
20, 71, 8, 89, 81, 97, 39, 66, 42, 57]
関数の実装
def calc_stats(numbers):
count = len(numbers)
total = sum(numbers)
avg = int(total / count)
if avg >= 70:
level = 'OK'
elif avg >= 50:
level = 'WARN'
else:
level = 'ERROR'
result = {
'count': count,
'sum': total,
'avg': avg,
'level': level
}
return result
ポイント
- 計算処理は関数内に集約
resultという dict に結果を整理return resultでまとめて返す
関数の呼び出しと表示
stats = calc_stats(numbers)
print(f"[{stats['level']}] count={stats['count']} sum={stats['sum']} avg={stats['avg']}")
実行結果
[WARN] count=20 sum=980 avg=49
今回の学び
'count': countは
👉 key と変数を結びつけて保存している- dict で返すと
👉 複数の値を一括で扱える - 処理と表示を分けると
👉 コードが一気に読みやすくなる
なぜ dict にまとめるのか?
もし個別に返そうとすると、
return count, total, avg, level
となり、
どれが何の値か分かりにくくなります。
dict にすると、
stats['avg']
stats['level']
と 意味を持った形で扱える のが大きなメリットです。
今日のまとめ
- 計算処理は関数にまとめる
- 結果は dict で整理する
- 表示は関数の外で行う
「動くコード」から
「読みやすいコード」へ一歩進めた学習 になりました。
次のステップ候補
- 空のリストが来た場合の対策(例外処理)
- 判定条件を引数で調整できるようにする
- ログ出力用の関数に発展させる


コメント