python字典一个key映射多个value

2020-06-19 16:54:21 浏览数 (2)

有时候我们想在字典中存储更多的信息,一个key对应多个value,但是又不想做两个字典。那么,我们可以将多个值放到另外的容器中, 比如列表或者集合中。比如,可以构造下面这样的字典:

代码语言:javascript复制
d = {
    'a' : [1, 2, 3],
    'b' : [4, 5]
}

如果想保持元素的插入顺序可以使用列表, 如果想去掉重复元素可以使用集合。

如果我们自己实现的话:

代码语言:javascript复制
d = {}
for key, value in pairs:
    if key not in d:
        d[key] = []
    d[key].append(value)

不过可以使collections库中的defaultdict会更为简洁,也更加常用:

代码语言:javascript复制
d = defaultdict(list)
for key, value in pairs:
    d[key].append(value)

0 人点赞