Home Python C Language C ++ HTML 5 CSS Javascript Java Kotlin SQL DJango Bootstrap React.js R C# PHP ASP.Net Numpy Dart Pandas Digital Marketing

Dictionary Comprehensions in Python


Dictionary comprehensions are a concise and efficient way to create dictionaries in Python. They allow you to create a new dictionary by specifying an expression for the keys and values, just like list comprehensions allow you to create lists. This article explains how to use dictionary comprehensions, along with examples.

1. What is a Dictionary Comprehension?

A dictionary comprehension is a syntactic construct that enables you to create dictionaries in a single, compact statement. It follows a specific structure: an expression for the key, an expression for the value, and an optional condition.

Syntax of Dictionary Comprehension

    # Syntax:
    # {key_expression: value_expression for item in iterable if condition}
        

This structure works similarly to list comprehensions, but instead of creating a list, it creates a dictionary where each item is a key-value pair.

2. Basic Example of Dictionary Comprehension

In the simplest form, a dictionary comprehension consists of an iterable, where for each item in the iterable, a key and a value are generated.

Example: Creating a Dictionary of Squares

    # Creating a dictionary where keys are numbers and values are their squares
    squares = {x: x**2 for x in range(5)}
    print(squares)  # Outputs: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
        

In this example, the dictionary comprehension iterates over the numbers from 0 to 4 and creates key-value pairs where the key is the number and the value is its square.

3. Adding Conditions to Dictionary Comprehensions

You can also include a condition (if statement) in the dictionary comprehension. This allows you to filter items and include only those that meet certain criteria.

Example: Creating a Dictionary of Even Numbers

    # Creating a dictionary with only even numbers
    even_squares = {x: x**2 for x in range(10) if x % 2 == 0}
    print(even_squares)  # Outputs: {0: 0, 2: 4, 4: 16, 6: 36, 8: 64}
        

In this example, the comprehension filters out the odd numbers, only including even numbers in the dictionary.

4. Using Existing Dictionaries in Dictionary Comprehensions

You can also use dictionary comprehensions to modify or filter items in an existing dictionary.

Example: Modifying Values in an Existing Dictionary

    # Creating a new dictionary by doubling the values of an existing dictionary
    original_dict = {"a": 1, "b": 2, "c": 3}
    doubled_values = {key: value*2 for key, value in original_dict.items()}
    print(doubled_values)  # Outputs: {'a': 2, 'b': 4, 'c': 6}
        

In this case, the dictionary comprehension iterates through the items of the original dictionary, modifying the values by doubling them.

5. Nested Dictionary Comprehensions

You can also use nested dictionary comprehensions to create more complex structures, like dictionaries of dictionaries or dictionaries with lists as values.

Example: Creating a Nested Dictionary

    # Creating a nested dictionary where each key has a dictionary as its value
    nested_dict = {x: { "square": x**2, "cube": x**3 } for x in range(5)}
    print(nested_dict)  # Outputs: {0: {'square': 0, 'cube': 0}, 1: {'square': 1, 'cube': 1}, 2: {'square': 4, 'cube': 8}, 3: {'square': 9, 'cube': 27}, 4: {'square': 16, 'cube': 64}}
        

This example demonstrates how you can create a dictionary where each value is another dictionary, containing multiple key-value pairs like "square" and "cube".

6. Conclusion

Dictionary comprehensions in Python provide a compact and efficient way to create dictionaries. They can be used to generate dictionaries from iterables, modify existing dictionaries, and create complex nested structures. Understanding dictionary comprehensions will allow you to write more Pythonic and readable code when working with dictionaries.



Advertisement





Q3 Schools : India


Online Complier

HTML 5

Python

java

C++

C

JavaScript

Website Development

HTML

CSS

JavaScript

Python

SQL

Campus Learning

C

C#

java