# 5 Best Ways to Sum Dictionary Values in Python

5/5 - (1 vote)

## Problem Formulation and Solution Overview

In this article, you’ll learn how to Sum Dictionary Values in Python.

To make it more fun, we have the following running scenario:

As a Python Freelancer, you would like to know how much money you made over the past few months. This data is stored in a Dictionary format. This total can be found by summing up (tallying) the Dictionary values.

💬 Question: How would we write Python code to sum dictionary values in Python?

We can accomplish this task by one of the following options:

## Method 1: Use sum() and dict.values()

You can use the functions `sum()` and `dict.values()` to sum all values of a Python dictionary with the expression `sum(dict.values())`.

Here’s how this applies to our example scenario:

```wages = {'01': 910.56, '02': 1298.68, '03': 1433.99, '04': 1050.14, '05': 877.67}
total = sum(wages.values())
print('Total Wages: \${0:,.2f}'.format(total))```

This code declares a Dictionary, `wages` containing five (5) key:value pairs of monthly income.

Option 1 above tallies the extracted values and saves to `total`. Then using `format()`, the output is modified to display a Dollar sign (`\$`), a comma (if needed), and restrict the output to two (2) decimal places.

OR

```total = round(sum(wages.values()), 2)
print(total)```

Option 2 above tallies the extracted values, rounds the result to two (2) decimal places, and saves to `total`. The result is output to the terminal as is.

## Method 2: Use sum() and Generator Expression

You can combine the built-in `sum()` function with a simple generator expression to sum all values in a Python dictionary with the expression `sum(my_dict[item] for item in my_dict)`.

Here’s the example:

```wages = {'01': 910.56, '02': 1298.68, '03': 1433.99, '04': 1050.14, '05': 877.67}
total = sum(wages[item] for item in wages)
print('Total Wages: \${0:,.2f}'.format(total))```

This code declares a Dictionary, `wages` containing five (5) key:value pairs of monthly income.

A one-line `for` loop is used to navigate each Dictionary item (value) and tally the items. The result saves to `total`.

Then, `format()` is used to modify the output to display a Dollar sign (`\$`), a comma (if needed), and restrict the output to two (2) decimal places.

## Method 3: Use a Lambda

An alternative way to sum over Python dictionary values is to use the `functools.reduce()` method in combination with a lambda function in the expression `functools.reduce(lambda tot, v: tot+my_dict[v], my_dict, 0)`.

Here’s what that looks like in our example scenario:

```wages = {'01': 910.56, '02': 1298.68, '03': 1433.99, '04': 1050.14, '05': 877.67}
total = functools.reduce(lambda tot, v: tot+wages[v], wages, 0)
print(total)```

First, this code declares a Dictionary, `wages` containing five (5) key:value pairs of monthly income.

Then, the `functools.reduce()` function is used with a Lambda to tally the wages. This result saves to `total` and is output to the terminal as is.

Output

## Method 4: Use a Generator

To sum all values in a Python dictionary, use `sum()` and a list representation of the dictionary values obtained with `my_dict.values()` and using `list()` for the conversion.

```wages = {'01': 910.56, '02': 1298.68, '03': 1433.99, '04': 1050.14, '05': 877.67}
print(sum(list(wages.values())))```

First, this code declares a Dictionary, `wages` containing five (5) key:value pairs of monthly income.

Then, the values are converted into a List format. Finally, the `sum()` function is applied to this List and output to the terminal.

Output

## Method 5: Simple For Loop

You can sum all values in a Python dictionary by iterating over all dictionary values using a `for` loop and adding them one by one.

Here’s our running example:

```wages = {'01': 910.56, '02': 1298.68, '03': 1433.99,
'04': 1050.14, '05': 877.67}
total = 0
for value in wages.values():
total += value

print(total)
# 5571.04
```

This is not the most Pythonic approach, however. A generator expression would be more concise and more readable.

## Summary

These five (5) methods of summing Dictionary values should give you enough information to select the best one for your coding requirements.

Good Luck & Happy Coding! 