Pythonで辞書の値を合計する方法をわかりやすく解説
Pythonの辞書(dict)に格納された値の合計を求めるのは非常に簡単です。最も基本的な方法は、dict.values()メソッドで辞書のすべての値を取得し、組み込み関数のsum()に渡すだけです。
基本の方法:dict.values() と sum() を使う
まずは最もシンプルな例を見てみましょう。次のコードでは、3つのキーと値を持つ辞書の値をすべて合計しています。
d = {
'foo': 10,
'bar': 20,
'baz': 30
}
print(sum(d.values()))実行結果
このコードを実行すると、以下の出力が得られます。
60
別の方法:forループで合計する
sum()関数を使わずに、forループで値を1つずつ加算していく方法もあります。処理の流れが明確になり、初心者にも理解しやすい書き方です。
d = {
'foo': 10,
'bar': 20,
'baz': 30
}
total = 0
for value in d.values():
total += value
print(total) # 60注意点:値は数値である必要がある
sum()や+演算子で合計を求める場合、辞書の値はすべて数値型(int や float)である必要があります。文字列など数値以外の値が含まれていると、TypeErrorが発生するので注意しましょう。
d = {'a': 10, 'b': '20'}
# print(sum(d.values())) # TypeError が発生するこのような場合は、条件分岐で数値のみを対象にするか、事前にデータ構造を見直すことをおすすめします。
まとめ
- 辞書の値の合計は
sum(d.values())の1行で求められる - forループを使えば処理の流れを明示的に記述できる
- 値が数値型でないと
TypeErrorになるため注意が必要
日常的なデータ集計や統計処理において、辞書の値の合計を求める操作はよく使われます。sum()とvalues()の組み合わせはPythonらしい簡潔な書き方なので、ぜひ覚えておきましょう。
-
Pythonで辞書のすべての値を取得・出力する方法
Pythonの辞書(dict)オブジェクトには、すべての値を簡単に取得できるvalues()メソッドが標準で用意されています。このメソッドを呼び出すと、辞書に格納された全ての値が dict_values オブジェクトとして返されます。values()メソッドを使う基本的な方法以下の例では、辞書 D1 のすべての値を values() メソッドで取得しています。戻り値はビューオブジェクトのため、リストとして扱いたい場合は list() 関数で変換すると便利です。>>> D1 = {1:a, 2:b, 3:c} >>> D1.values() dict_valu
-
Pythonで文字列を辞書(dict)に変換する方法|ast.literal_evalとjson.loadsの使い分け
Pythonでは、文字列形式で表現された辞書データを実際のdictオブジェクトに変換したい場面がよくあります。主な方法としては、標準ライブラリの ast.literal_eval() を使う方法と、json モジュールを使う方法の2つがあります。それぞれの特徴と使い方を詳しく見ていきましょう。 方法1:ast.literal_eval() を使う ast.literal_eval() は、文字列をPythonの式として安全に評価する関数です。任意のコードを実行できてしまう eval() とは異なり、リテラル構造以外は評価しないため、セキュリティ面でも安心して利用できます。 評価できるのは、文