20.1.6. 字典中的键映射多个值

#!/usr/bin/env python
#-*- coding:utf8 -*-
# auther; 18793
# Date:2019/7/28 16:47
# filename: 06.字典中的键映射多个值.py
from collections import defaultdict

d = defaultdict(list)
d['a'].append(1)
d['a'].append(2)
d['c'].append(4)
print(d)

s = defaultdict(set)
s['a'].add(1)
s['a'].add(2)
s['c'].add(4)
print(s)

输出信息

defaultdict(<class 'list'>, {'c': [4], 'a': [1, 2]})
defaultdict(<class 'set'>, {'c': {4}, 'a': {1, 2}})

普通字典实现

d = {}
d.setdefault('hu', []).append(1)
d.setdefault('hu', []).append(2)
d.setdefault('hu', []).append(4)
print(d)

输出信息

{'hu': [1, 2, 4]}

自己造轮子

创建一个多值映射的字典

d = {}
for key, value in pairs:
    if key not in d:
        d[key] = []
    d[key].append(value)

使用defaultdict来实现

d = defaultdict(list)
for key, value in pairs:
    d[key].append(value)