Python Dictionary Comprehensions with Examples 
Tags: python
Published: 2020-12-27 13:11:14

In this tutorial, I am going to talk about Python Dictionary Comprehension. 

If you want to learn more about Python Dictionary, you can look at my free Python Tutorial. 
 
- [Python Tutorial](https://learnandmakeit.com/python-tutorial/)
- [Dictionaries in Python](https://learnandmakeit.com/dictionaries/)

First, I am going to talk about what is Python Dictionary. Then I am going to talk about Python Dictionary Comprehension with examples.



# Python Dictionary

Dictionary is an ordered, changeable, and indexed collection of items. Dictionaries have **key** and **value**.

With dictionary, you can do many tasks that require a lot of code with a single line of code.

Let’s give an example of using a dictionary in real life.

You don’t know the phone number of everyone in your phone book. You save the number with the name of the person so that you can access and call the person's number with the name at any time.

This is also the same for the python dictionary. Python also consists of dictionary key and value items. We use **curly brackets** to create a dictionary in Python.

 
 

**The Python dictionary syntax structure is as follows**:

```
my_dictionary = { "key1": value1, "key2": value2 } 
```

Now, Let’s learn about dictionary comprehension in Python.



# Python Dictionary Comprehension

Dictionary comprehension is a special and elegant way to create dictionaries.
 
We can create dictionaries using simple expressions and dictionary comprehension should be written in a specific pattern.
 
**The syntax of dictionary comprehension** :

```
{ key : value for ( key, value ) in dictionary.items() }  
```


# Why Use Dictionary Comprehension

First of all, Let’s start by explaining why we use comprehension.

**Example** : 

Without comprehension:

```
values = [] # empty list

for x in range(5):
values.append(x * 2)

print(values)
```

**Output** : 

```
[0, 2, 4, 6, 8] 
```
 
                             
            

With Comprehension:

```
values = {x: x * 2 for x in range(5)}

print(values) 
```

**Output** :

```
{0: 0, 1: 2, 2: 4, 3: 6, 4: 8} 
```

As you can see we can do the same program with just a line of code with comprehension.
 
 
Now, Let’s look at other dictionary comprehension examples.
 



**Example** : 
 
Let say that we want to change the product prices from dollar to euro. Here is the program with dictionary comprehension.

```
my_dictionary = {"computer": 900, "phone": 400, "book": 10}
dollar_to_euro = 0.84

new_price = {key: value * dollar_to_euro for(key, value) in my_dictionary.items()}

print(new_price) 
```


**Output** :

```
{'computer': 756.0, 'phone': 336.0, 'book': 8.4} 
```





# Using Conditional in Python Dictionary


## Python Dictionary If Condition

**Example** :
 
In this example, if the person’s age bigger or equal to 18, we will add it to our new dictionary.

```
my_dictionary = {"James": 25, "John": 17, "Adam": 36}

new_dictionary = {k : v for (k,v) in my_dictionary.items() if v >= 18}

print(new_dictionary) 
```

**Output** :

```
{'James': 25, 'Adam': 36} 
```



## Python Dictionary Multiple Condition

**Example** :
 
In the same example if the person’s age is bigger or equal to 18 and divided by 2, then we will add it to our new dictionary. 

```
my_dictionary = {"James": 25, "John": 17, "Adam": 36}

new_dictionary = {k : v for (k,v) in my_dictionary.items() if v % 2 == 0 if v >= 18}

print(new_dictionary) 
```

**Output** :
```
{'Adam': 36}
```




## Python Dictionary Comprehension If Else Condition

**Example** : 
 
In the same example, if the person’s age is bigger or equal to 18, our program will add it as ” **can vote** ” otherwise “**cannot vote**“. 

```
my_dictionary = {"James": 25, "John": 17, "Adam": 36}

new_dictionary = {k : ('can vote' if v >=18 else 'cannot vote') for (k,v) in my_dictionary.items() }

print(new_dictionary)
```

**Output** :

```
{'James': 'can vote', 'John': 'cannot vote', 'Adam': 'can vote'} 
```

As you can see we can write better, cleaner code with dictionary comprehension. In short, This is more Pythonic.