今回は
list の集計結果(件数・合計・平均)を辞書にまとめ、条件付きでログ出力する方法 を学習しました。
これまで学んできた
len()sum()int()if / elsef文字列dict
を 1つの処理として整理する回 です。

■ 今回扱うデータ
numbers = [35, 7, 26, 59, 55, 73, 90, 24, 13, 28,
20, 71, 8, 89, 81, 97, 39, 66, 42, 57]
■ Step1:基本的な集計処理
まずは基本となる集計です。
print(len(numbers))
print(sum(numbers))
print(int(sum(numbers) / len(numbers)))
実行結果
20
980
49
- 件数:20
- 合計:980
- 平均(整数):49
■ Step2:集計結果を辞書にまとめる
複数の値をまとめて扱うため、dict を使います。
result = {
'count': len(numbers),
'sum': sum(numbers),
'avg': int(sum(numbers) / len(numbers))
}
■ Step3:辞書の中身をログ風に出力する
print(f"count={result['count']} sum={result['sum']} avg={result['avg']}")
実行結果
count=20 sum=980 avg=49
■ Step4:判定結果(OK / WARN)を追加する
平均値が 50以上なら OK、それ未満なら WARN とします。
if result['avg'] >= 50:
level = 'OK'
else:
level = 'WARN'
■ Step5:判定結果を辞書に入れてログ出力
ここが今回の重要ポイントです。
result['level'] = level
print(f"level={result['level']} count={result['count']} sum={result['sum']} avg={result['avg']}")
実行結果
level=WARN count=20 sum=980 avg=49
■ つまずきポイント
❌ 間違った書き方
'level': 'level'
これは
👉 文字列 “level” をそのまま入れているだけ です。
✅ 正しい書き方
'level': level
👉 変数 level の中身(OK / WARN)が入る
■ 完成コード(まとめ)
numbers = [35, 7, 26, 59, 55, 73, 90, 24, 13, 28,
20, 71, 8, 89, 81, 97, 39, 66, 42, 57]
result = {
'count': len(numbers),
'sum': sum(numbers),
'avg': int(sum(numbers) / len(numbers))
}
if result['avg'] >= 50:
result['level'] = 'OK'
else:
result['level'] = 'WARN'
print(f"level={result['level']} count={result['count']} sum={result['sum']} avg={result['avg']}")
■ 今日のまとめ
- 集計結果は dict にまとめると扱いやすい
- dict に入れるのは「文字列」か「変数」かを意識する
if / else+f文字列でログ出力が一気に実務っぽくなる- 小さな処理を組み合わせることで、意味のあるコードになる
🔜 次のステップ候補(#20)
round()を使った小数表示- 関数化して再利用する
- 複数データをループで処理する


コメント