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)