Python Practice › List Programs › Program 97
Remove repeated dictionaries
Write a Python program to remove repeated dictionaries from a list.
Input
[{"Hello": 5}, {"student": 7}, {"are": 3}, {"learning": 8}, {"Hello": 5}, {"Language": 8}, {"are": 3}]Output
[{'Hello': 5}, {'student': 7}, {'are': 3}, {'learning': 8}, {'Language': 8}]Approach
- Use a set of each dict’s items (as a frozenset) to remember what was seen.
Solution
data = [{"Hello": 5}, {"student": 7}, {"are": 3}, {"learning": 8}, {"Hello": 5}, {"Language": 8}, {"are": 3}]seen = set()result = []for d in data: key = frozenset(d.items()) if key not in seen: seen.add(key) result.append(d)print(result)Output
[{'Hello': 5}, {'student': 7}, {'are': 3}, {'learning': 8}, {'Language': 8}]Line by line
Line 4
frozenset(d.items()) is a hashable fingerprint of the dict, so the check is fast even for long lists.
Learn the concept
New to this topic? Read the lesson, then come back.