Python program to remove null values from a dictionary

Dictionaries are collection data types that store data as key-value pairs. They are ordered, changeable, and do not allow duplicate keys. Sometimes dictionaries contain null values (represented by None in Python) that need to be removed for data processing.

In this article, we will explore different methods to remove None values from dictionaries using Python.

Understanding None Values in Python

In Python, None represents the absence of a value. Unlike other languages that use "null", Python uses None as a first-class object. It's commonly used as default parameter values, placeholder values, or when functions don't explicitly return anything.

# Dictionary with None values
sample_dict = {"name": "John", "age": None, "city": "NYC", "phone": None}
print("Original dictionary:", sample_dict)
Original dictionary: {'name': 'John', 'age': None, 'city': 'NYC', 'phone': None}

Using Loop Iteration

The basic approach iterates through the dictionary and copies only non-None values to a new dictionary ?

data = {"key1": 2, "key2": None, "key3": 5, "key4": "abc", "key5": None}

filtered_dict = {}
for key, value in data.items():
    if value is not None:
        filtered_dict[key] = value

print("Filtered dictionary:", filtered_dict)
Filtered dictionary: {'key1': 2, 'key3': 5, 'key4': 'abc'}

Using Dictionary Comprehension

Dictionary comprehension provides a more elegant and Pythonic solution ?

data = {"key1": 2, "key2": None, "key3": 5, "key4": "abc", "key5": None}

filtered_dict = {k: v for k, v in data.items() if v is not None}
print("Filtered dictionary:", filtered_dict)
Filtered dictionary: {'key1': 2, 'key3': 5, 'key4': 'abc'}

Handling Multiple Null-like Values

You can extend the condition to remove other "falsy" values like empty strings or zero ?

data = {"key1": 2, "key2": None, "key3": 0, "key4": "abc", "key5": "", "key6": 5}

# Remove None, 0, and empty strings
filtered_dict = {k: v for k, v in data.items() if v is not None and v != 0 and v != ""}
print("Filtered dictionary:", filtered_dict)
Filtered dictionary: {'key1': 2, 'key4': 'abc', 'key6': 5}

Using filter() Function

The filter() function provides another approach for removing None values ?

data = {"key1": 2, "key2": None, "key3": 5, "key4": "abc", "key5": None}

filtered_items = filter(lambda item: item[1] is not None, data.items())
filtered_dict = dict(filtered_items)

print("Filtered dictionary:", filtered_dict)
Filtered dictionary: {'key1': 2, 'key3': 5, 'key4': 'abc'}

Comparison of Methods

Method Readability Performance Best For
Loop Iteration Good Moderate Complex filtering logic
Dictionary Comprehension Excellent Fast Simple conditions
filter() Function Good Fast Functional programming style

Conclusion

Dictionary comprehension is the most Pythonic way to remove None values from dictionaries. Use loop iteration for complex filtering logic, and filter() for functional programming approaches. Always use is not None instead of != None for proper None checking.

Updated on: 2026-03-27T05:46:00+05:30

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements