python 字典中的键映射多个值

问题

实现一个键对应多个值的字典

实现

一个字典就是一个键对应一个单值的映射。如果想要一个键映射多个值,那么就需要将这多个值放到另外的容器中, 比如列表或者集合里面。根据不同的需求选择不同的容器。

collections 模块中的 defaultdict 可以很方便的实现上述需求。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>>> from collections import defaultdict 

# defualt list
>>> d['a'].append('1')
>>> d
defaultdict(<class 'list'>, {'a': ['1']})
>>> d['a'].append('2')
>>> d
defaultdict(<class 'list'>, {'a': ['1', '2']})

# defualt tuple
>>> d = defaultdict(tuple)
>>> d[1] += (1, 2)
>>> d
defaultdict(<class 'tuple'>, {1: (1, 2)})
1
2
3
4
5
6
7
>>> d = {}
>>> d.setdefault('a', []).append(1)
>>> d
{'a': [1]}
>>> d.setdefault('a', []).append(2)
>>> d
{'a': [1, 2]}
-------------本文结束感谢您的阅读-------------