SyntaxStudy
Sign Up
Python Dictionary Comprehensions
Python Intermediate 9 min read

Dictionary Comprehensions

Dictionary Comprehensions

Like list comprehensions, dict comprehensions provide a concise way to build dictionaries from iterables.

Basic Syntax

{key_expr: value_expr for item in iterable}

Examples

# squares
squares = {n: n**2 for n in range(1, 6)}
print(squares)  # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

# string length map
words = ["apple", "banana", "cherry"]
lengths = {w: len(w) for w in words}
print(lengths)  # {'apple': 5, 'banana': 6, 'cherry': 6}

With Condition

# only even squares
even_sq = {n: n**2 for n in range(10) if n % 2 == 0}
print(even_sq)

Transforming Existing Dicts

prices = {"apple": 1.20, "banana": 0.50, "cherry": 3.00}
# 10% discount
discounted = {k: round(v * 0.9, 2) for k, v in prices.items()}
print(discounted)

Inverting a Dict

original = {"a": 1, "b": 2, "c": 3}
inverted = {v: k for k, v in original.items()}
print(inverted)  # {1: 'a', 2: 'b', 3: 'c'}
Example
students = ["Alice", "Bob", "Carol", "Dave"]
scores = [92, 85, 78, 91]

grade_map = {name: score for name, score in zip(students, scores)}
print(grade_map)

passed = {name: score for name, score in grade_map.items() if score >= 85}
print("Passed:", passed)

upper_map = {k.upper(): v for k, v in grade_map.items()}
print(upper_map)
Pro Tip

Dict comprehensions are evaluated eagerly (immediately), not lazily. For very large datasets, consider using a generator expression with dict().