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.

Updated on: 2026-03-26T23:52:08+05:30

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements