Files
30-seconds-of-code/snippets/collect_dictionary.md
2022-12-04 22:24:48 +02:00

845 B

title, tags, author, cover, firstSeen, lastUpdated
title tags author cover firstSeen lastUpdated
Invert dictionary dictionary maciv blog_images/working-bee.jpg 2020-04-07T21:15:06+03:00 2020-11-02T19:27:07+02:00

Inverts a dictionary with non-unique hashable values.

  • Create a collections.defaultdict with list as the default value for each key.
  • Use dictionary.items() in combination with a loop to map the values of the dictionary to keys using dict.append().
  • Use dict() to convert the collections.defaultdict to 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'] }