文法・環境 辞書

【python】辞書(dict)の値(value)の足し算

本記事では、pythonの辞書の値を足す方法について紹介します。

本記事では、以下の内容を紹介しています。

この記事で分かること

■辞書の値を足し算する方法

  • forループで、値を足し算する
  • sum関数で、値を足し算する

■2つの辞書のキーが同じ場合に、値を足し算する方法

スポンサーリンク

辞書の値(value)を足し算する

はじめに、1つの辞書の値をすべて足し合わせる方法について紹介します。

以下の2つの方法について、サンプルコードを交えながら紹介します。

  • forループで、辞書の値を足し算する
  • sum関数で、辞書の値を足し算する

forループで値を足し算する

forループを用いて、辞書の値を足し算する方法について、紹介します。

以下、サンプルコードです。

### 辞書の値をforループで足し算
fruits_dict = {'Apple':150, 'Banana':200, 'Grape':500}

print(list(fruits_dict.values()))
# [150, 200, 500]

total = 0
for price in fruits_dict.values() :
    total += price

print(total)
# 850

> print(list(fruits_dict.values()))

辞書のvaluesメソッドを使用することで、辞書の値を取得することができます。
このメソッドの返り値は、dict_values型でそのままでは要素を確認できないため、リスト型に型変換した後でprint出力しています。

> for price in fruits_dict.values() :
> total += price

forループで、辞書から値を1つずつ取り出し、for文の中で足し合わせています。

なお、辞書のキーや値を取得する方法については、下記の記事で紹介しています。

辞書のキーと値の取得方法

sum関数で値を足し算する

sum関数を用いて、辞書の値を足し算する方法について、紹介します。

以下、サンプルコードです。

### 辞書の値をsum関数で足し算
fruits_dict = {'Apple':150, 'Banana':200, 'Grape':500}

print(list(fruits_dict.values()))
# [150, 200, 500]

print(sum(fruits_dict.values()))
# 850

sum関数の引数に、辞書のすべての値を渡しています。

なお、辞書の値は、先ほどの例と同様にvaluesメソッドで取得しています。

スポンサーリンク

2つの辞書のキーが同じ場合、値(value)を足し算する

次に、2つの辞書のキーが同じ場合に、値を足し算する方法について、紹介します。

以下、サンプルコードです。

### 2つの辞書のキーが同じ場合に、値を足し算
fruits_dict1 = {'Apple':150, 'Banana':200, 'Grape':500}
fruits_dict2 = {'Apple':100, 'Lemon':100, 'Peach':300}

fruits_dict = {}
for fruit in ( fruits_dict1.keys() | fruits_dict2.keys() ) :

    num_1 = int(fruits_dict1.get(fruit) or 0)
    num_2 = int(fruits_dict2.get(fruit) or 0)
    
    num_total = num_1 + num_2

    fruits_dict.setdefault(fruit, num_total)

print(fruits_dict)
# {'Lemon': 100, 'Peach': 300, 'Banana': 200, 'Grape': 500, 'Apple': 250}

> fruits_dict1.keys() | fruits_dict2.keys()

辞書のkeysメソッドで、辞書のキーを取得できます。
" | " 演算子を用いることで、キーの和集合を取得できます。
これによって、2つの辞書に含まれるすべてのキーを取得しています。

> num_1 = int(fruits_dict1.get(fruit) or 0)

辞書のgetメソッドを用いて、辞書のキーに対応した値を取得しています。
辞書[ キー ] でも値を取得することができますが、この方法だとキーが無い場合にエラーが発生してしまうため、今回はgetメソッドを使用しています。

また、int( 値 or 0 )としている理由は、getメソッドで値を取得したい際にキーが存在せずNoneが返された場合に、int関数でエラーが発生することを防ぐためです。
Noneは、論理演算ではFalseとみなされるため、int( None or 0 )の場合は、0となります。

> fruits_dict.setdefault(fruit, num_total)

辞書のsetdefaultメソッドの引数に、キーと値を渡すことで、辞書に新たな要素を追加できます。
この値に、2つの辞書の値の足し算の結果を渡しています。

getメソッドなどを用いて、辞書の値を取得する方法については、下記の記事で紹介しています。

辞書のキーと値の取得方法

setdefaultなどを用いて、辞書に要素を追加する方法については、下記の記事で紹介しています。

辞書に要素を追加する方法【update、setdefault】

スポンサーリンク

まとめ

pythonで、辞書の値を足し算する方法について紹介しました。

値の足し算方法そのものを覚える必要はないと思いますが、辞書の値を取得するgetメソッドや、辞書の要素を追加するsetdefaultメソッドについては使用する機会も多いので、覚えておくようにしましょう。

スポンサーリンク

-文法・環境, 辞書
-,