0
0
PythonHow-ToBeginner · 3 min read

How to Set Default Value in Dictionary Python

In Python, you can set a default value in a dictionary by using the dict.get(key, default) method which returns the default if the key is missing. Alternatively, use collections.defaultdict to automatically assign default values for missing keys.
📐

Syntax

Here are two common ways to set default values in a Python dictionary:

  • Using dict.get(key, default): Returns the value for key if it exists, otherwise returns default.
  • Using collections.defaultdict(default_factory): Creates a dictionary that automatically assigns a default value from default_factory when a missing key is accessed.
python
value = my_dict.get(key, default_value)

from collections import defaultdict
my_dict = defaultdict(default_factory)
💻

Example

This example shows how to use dict.get() to safely get a value with a default, and how to use defaultdict to automatically assign default values for missing keys.

python
from collections import defaultdict

# Using dict.get() method
my_dict = {'apple': 2, 'banana': 3}
print(my_dict.get('apple', 0))   # Output: 2
print(my_dict.get('orange', 0))  # Output: 0 (default)

# Using defaultdict
fruit_count = defaultdict(int)  # int() returns 0
fruit_count['apple'] = 2
fruit_count['banana'] = 3
print(fruit_count['apple'])    # Output: 2
print(fruit_count['orange'])   # Output: 0 (default automatically assigned)
Output
2 0 2 0
⚠️

Common Pitfalls

One common mistake is trying to assign a default value by directly accessing a missing key, which raises a KeyError. Another is modifying the dictionary inside a loop without using safe methods.

Always use dict.get() or defaultdict to avoid errors when keys might be missing.

python
my_dict = {'a': 1}

# Wrong way: raises KeyError
# print(my_dict['b'])

# Right way: use get() with default
print(my_dict.get('b', 0))  # Output: 0

# Using defaultdict to avoid KeyError
from collections import defaultdict
my_defaultdict = defaultdict(lambda: 'missing')
my_defaultdict['a'] = 1
print(my_defaultdict['b'])  # Output: 'missing'
Output
0 missing
📊

Quick Reference

Summary of methods to set default values in Python dictionaries:

MethodDescriptionExample
dict.get(key, default)Returns value if key exists, else defaultmy_dict.get('key', 0)
collections.defaultdict(default_factory)Auto-assigns default for missing keysdefaultdict(int) assigns 0 by default
dict.setdefault(key, default)Sets default if key missing and returns valuemy_dict.setdefault('key', 0)

Key Takeaways

Use dict.get(key, default) to safely access keys with a fallback value.
Use collections.defaultdict to automatically assign default values for missing keys.
Avoid accessing missing keys directly to prevent KeyError exceptions.
dict.setdefault can also set and return a default value if the key is missing.
Choose the method that best fits your use case for cleaner and safer code.