Dictionary comprehension

Dictionary comprehension is a concise way to create dictionaries in Python. It allows us to create a new dictionary by performing operations on existing iterables, such as lists or other dictionaries. Dictionary comprehension is similar to list comprehension, but instead of creating lists, it creates dictionaries.

The basic syntax of dictionary comprehension consists of curly braces {} enclosing an expression that defines both the key and value of each item in the dictionary, followed by a for loop to iterate over the elements of an iterable object. Here's an example:

numbers = [1, 2, 3, 4, 5]
squared_numbers = {x: x**2 for x in numbers}

In this example, we use dictionary comprehension to create a new dictionary called squared_numbers. The expression x: x**2 defines both the key and value of each item in the dictionary. The for loop iterates over each element x in the numbers list.

The resulting squared_numbers dictionary will contain the original numbers as keys and their squared values as values: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}.

Dictionary comprehension can also include conditional statements to filter the elements that are included in the new dictionary. Here's an example:

numbers = [1, 2, 3, 4, 5]
even_numbers = {x: x**2 for x in numbers if x % 2 == 0}

In this code, we use dictionary comprehension to create a new dictionary called even_numbers. The expression x: x**2 defines the key-value pairs of each item in the dictionary. The for loop iterates over each element x in the numbers list, and the condition x % 2 == 0 checks if the number is even.

The resulting even_numbers dictionary will contain only the even numbers from the original list as keys, with their squared values as values: {2: 4, 4: 16}.

Dictionary comprehension is a concise and efficient way to create dictionaries based on existing iterables. It can be used to transform, filter, or combine elements from one or more iterables into a dictionary.