Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
How to create a dictionary of sets in Python?
A dictionary of sets in Python stores sets as values for dictionary keys, automatically eliminating duplicates. This structure is useful for grouping unique items under different categories.
Using Dictionary Literals
The simplest way is to create a dictionary with sets as values using curly braces ?
# Creating a dictionary with sets as values
employee_data = {
'Employee_ID': {10, 11, 12, 14, 15},
'Employee_Age': {25, 30, 40, 35, 28}
}
print("Dictionary of sets:")
print(employee_data)
Dictionary of sets:
{'Employee_ID': {10, 11, 12, 14, 15}, 'Employee_Age': {35, 40, 25, 28, 30}}
Automatic Duplicate Removal
Sets automatically remove duplicates when created ?
# Creating sets with duplicate values
employee_data = {
'Employee_ID': {10, 11, 12, 13, 13, 14, 15, 10, 12, 11},
'Employee_Age': {25, 30, 30, 40, 25, 35, 40, 28, 33, 25}
}
print("Duplicates automatically removed:")
print(employee_data)
Duplicates automatically removed:
{'Employee_ID': {10, 11, 12, 13, 14, 15}, 'Employee_Age': {33, 35, 40, 25, 28, 30}}
Using defaultdict()
The defaultdict(set) creates an empty set for any new key automatically ?
from collections import defaultdict
# Create a defaultdict with set as default factory
employee_dict = defaultdict(set)
# Add values using |= operator
employee_dict["Employee_ID"] |= {10, 11, 12, 14, 15}
employee_dict["Employee_Age"] |= {25, 30, 40, 35, 28}
print("Using defaultdict:")
print(dict(employee_dict)) # Convert to regular dict for cleaner output
Using defaultdict:
{'Employee_ID': {10, 11, 12, 14, 15}, 'Employee_Age': {35, 40, 25, 28, 30}}
Using setdefault()
The setdefault() method returns the value if key exists, otherwise sets and returns a default value ?
# Start with existing dictionary
employee_dict = {
'Employee_ID': {10, 11, 12, 14, 15},
'Employee_Age': {25, 30, 40, 35, 28}
}
# Access existing values
print("Accessing Employee_ID:", employee_dict.setdefault('Employee_ID'))
print("Accessing Employee_Age:", employee_dict.setdefault('Employee_Age'))
# Add new key with default set
employee_dict.setdefault('Employee_Name', {'alice', 'bob', 'charlie', 'david', 'eve'})
print("\nAfter adding Employee_Name:")
print(employee_dict)
Accessing Employee_ID: {10, 11, 12, 14, 15}
Accessing Employee_Age: {35, 40, 25, 28, 30}
After adding Employee_Name:
{'Employee_ID': {10, 11, 12, 14, 15}, 'Employee_Age': {35, 40, 25, 28, 30}, 'Employee_Name': {'alice', 'bob', 'charlie', 'david', 'eve'}}
Comparison
| Method | Best For | Advantage |
|---|---|---|
| Dictionary literals | Static data | Simple and readable |
defaultdict(set) |
Dynamic additions | Auto-creates missing keys |
setdefault() |
Conditional additions | Works with existing dicts |
Conclusion
Dictionary of sets is useful for storing unique values under different keys. Use defaultdict(set) for dynamic key creation or setdefault() for adding to existing dictionaries.
Advertisements
