🟩 Python学習記録 #19|集計結果を辞書でまとめてログ出力する

Code

今回は
list の集計結果(件数・合計・平均)を辞書にまとめ、条件付きでログ出力する方法 を学習しました。

これまで学んできた

  • len()
  • sum()
  • int()
  • if / else
  • f文字列
  • 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() を使った小数表示
  • 関数化して再利用する
  • 複数データをループで処理する

コメント

タイトルとURLをコピーしました