DEV Community

Cover image for Day 29/100: Dictionary and Set Comprehensions in Python
 Rahul Gupta
Rahul Gupta

Posted on

Day 29/100: Dictionary and Set Comprehensions in Python

Welcome to Day 29 of the 100 Days of Python series!
Yesterday, we explored list comprehensions, a concise way to create lists.
Today, we’ll dive into their powerful cousins: Dictionary and Set Comprehensions.

These are elegant Pythonic tools that help us generate dictionaries and sets from iterables in just one line of code.


🎯 What You'll Learn

  • What dictionary comprehensions are
  • What set comprehensions are
  • Syntax and practical examples
  • When to use them
  • Common mistakes to avoid

🧾 Dictionary Comprehensions

A dictionary comprehension allows you to create dictionaries using a single line of code.

πŸ”Ή Syntax:

{key_expr: value_expr for item in iterable}
Enter fullscreen mode Exit fullscreen mode

It’s the dictionary version of a list comprehension, but you specify both key and value.


βœ… Example 1: Square of Numbers

squares = {x: x**2 for x in range(5)}
print(squares)
# Output: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
Enter fullscreen mode Exit fullscreen mode

βœ… Example 2: Character Count in a Word

word = "banana"
char_count = {char: word.count(char) for char in word}
print(char_count)
# Output: {'b': 1, 'a': 3, 'n': 2}
Enter fullscreen mode Exit fullscreen mode

βœ… Example 3: Swap Keys and Values

original = {'a': 1, 'b': 2, 'c': 3}
swapped = {v: k for k, v in original.items()}
print(swapped)
# Output: {1: 'a', 2: 'b', 3: 'c'}
Enter fullscreen mode Exit fullscreen mode

βœ… Example 4: Filtering Items

prices = {'apple': 100, 'banana': 40, 'mango': 150}
cheap_fruits = {k: v for k, v in prices.items() if v < 100}
print(cheap_fruits)
# Output: {'banana': 40}
Enter fullscreen mode Exit fullscreen mode

πŸ” Set Comprehensions

Set comprehensions help you generate a set using a similar syntax β€” great for removing duplicates automatically.

πŸ”Ή Syntax:

{expression for item in iterable}
Enter fullscreen mode Exit fullscreen mode

βœ… Example 1: Unique Characters

word = "balloon"
unique_chars = {char for char in word}
print(unique_chars)
# Output: {'n', 'b', 'o', 'a', 'l'}
Enter fullscreen mode Exit fullscreen mode

βœ… Example 2: Square of Even Numbers

even_squares = {x**2 for x in range(10) if x % 2 == 0}
print(even_squares)
# Output: {0, 4, 16, 36, 64}
Enter fullscreen mode Exit fullscreen mode

πŸ’‘ Why Use Them?

  • πŸ”„ Clean, one-line transformations
  • πŸš€ Faster than traditional loops
  • πŸ’Ό Practical for filtering, transforming, or reversing data
  • βœ… Automatic uniqueness with sets

⚠️ Common Mistakes

  1. Duplicate keys in dictionary comprehensions: Later values will overwrite earlier ones.
   {char: i for i, char in enumerate("banana")}
   # {'b': 0, 'a': 5, 'n': 4}  # 'a' gets overwritten
Enter fullscreen mode Exit fullscreen mode
  1. Forgetting .items() in dict comprehensions:
   {k: v for k, v in my_dict}  # ❌ TypeError
   {k: v for k, v in my_dict.items()}  # βœ…
Enter fullscreen mode Exit fullscreen mode
  1. Expecting order in sets: Sets are unordered; don't rely on element positions.

πŸ§ͺ Real-World Use Cases

πŸ”§ 1. Invert a Dictionary

data = {"x": 1, "y": 2}
inverted = {v: k for k, v in data.items()}
# {1: 'x', 2: 'y'}
Enter fullscreen mode Exit fullscreen mode

πŸ“š 2. Create Index of Words

words = ["apple", "banana", "cherry"]
index = {word: i for i, word in enumerate(words)}
# {'apple': 0, 'banana': 1, 'cherry': 2}
Enter fullscreen mode Exit fullscreen mode

πŸ”₯ 3. Get All Unique Vowels in a Sentence

sentence = "Today is a beautiful day"
vowels = {char for char in sentence.lower() if char in 'aeiou'}
# {'a', 'e', 'i', 'o', 'u'}
Enter fullscreen mode Exit fullscreen mode

🧭 Recap

Today you learned:

βœ… How to use dictionary and set comprehensions
βœ… How they differ from list comprehensions
βœ… Syntax and best practices
βœ… Real-world examples like inverting dictionaries and filtering data


Top comments (0)