本記事では、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メソッドについては使用する機会も多いので、覚えておくようにしましょう。
スポンサーリンク