反转字典

反转一个具有非唯一可哈希值的字典。

  • 使用collections.defaultdict创建一个默认值为list的字典。
  • 结合循环使用dictionary.items()将字典的值映射到键上,使用dict.append()进行追加。
  • 使用dict()collections.defaultdict转换为普通字典。
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'] }