706 B
706 B
title, tags
| title | tags |
|---|---|
| collect_dictionary | dictionary,intermediate |
Inverts a dictionary with non-unique hashable values.
- Create a
defaultdictwithlistas the default value for each key. - Use
dictionary.items()in combination with a loop to map the values of the dictionary to keys usingappend(). - Use
dict()to convert thedefaultdictto a regular dictionary.
from collections import defaultdict
def collect_dictionary(obj):
inv_obj = defaultdict(list)
for key, value in obj.items():
inv_obj[value].append(key)
return dict(inv_obj)
ages = {
"Peter": 10,
"Isabel": 10,
"Anna": 9,
}
collect_dictionary(ages) # { 10: ["Peter", "Isabel"], 9: ["Anna"] }