0
0
PythonHow-ToBeginner · 3 min read

How to Filter Dictionary by Value in Python Easily

To filter a dictionary by value in Python, use a dictionary comprehension with a condition on the values. For example, {k: v for k, v in my_dict.items() if v > 10} creates a new dictionary with only items where the value is greater than 10.
📐

Syntax

The basic syntax to filter a dictionary by value uses a dictionary comprehension:

  • {key: value for key, value in dictionary.items() if condition_on_value}

Here, dictionary.items() gives pairs of keys and values. The if part filters items based on the value.

python
{key: value for key, value in dictionary.items() if condition_on_value}
💻

Example

This example filters a dictionary to keep only items with values greater than 10.

python
my_dict = {'apple': 5, 'banana': 15, 'cherry': 25, 'date': 8}
filtered_dict = {k: v for k, v in my_dict.items() if v > 10}
print(filtered_dict)
Output
{'banana': 15, 'cherry': 25}
⚠️

Common Pitfalls

One common mistake is trying to filter the dictionary directly without creating a new one, which does not work because dictionaries are not filtered in place.

Another mistake is forgetting to use .items(), which leads to filtering keys instead of key-value pairs.

python
my_dict = {'a': 1, 'b': 2, 'c': 3}

# Wrong: filtering keys only (no .items())
filtered_wrong = {k: v for k in my_dict if v > 1}  # This causes an error because 'v' is undefined

# Correct way:
filtered_correct = {k: v for k, v in my_dict.items() if v > 1}
print(filtered_correct)
Output
{'b': 2, 'c': 3}
📊

Quick Reference

Tips for filtering dictionaries by value:

  • Always use .items() to access keys and values.
  • Use dictionary comprehension for concise and readable code.
  • Filtering creates a new dictionary; original stays unchanged.

Key Takeaways

Use dictionary comprehension with .items() to filter by value.
Filtering creates a new dictionary; it does not change the original.
Always include a condition on the value inside the comprehension.
Avoid filtering without .items() to prevent errors.
Dictionary comprehensions are simple and efficient for filtering.