Python 多重字典示例 – 将单个键映射到字典中的多个值

1.什么是多重字典

在 python 中,“多重字典”一词用于指代字典,在其中可以将单键映射到多个值。 例如:

multidictWithList = {
   'key1' : [1, 2, 3],
   'key2' : [4, 5]
}

multidictWithSet = {
   'key1' : {1, 2, 3},
   'key2' : {4, 5}
}

1. 如果您想保留项目的插入顺序,请使用List

2. 如果您想消除重复项(并且不关心顺序),请使用Set

2. 多重字典示例

要轻松构造此类词典,可以在collections模块中使用defaultdictdefaultdict的功能是它会自动初始化第一个值,因此您只需专注于添加项目即可。

from collections import defaultdict

d1 = defaultdict(list)	#list backed multidict

d1['key1'].append(1)
d1['key1'].append(2)
d1['key1'].append(3)
d1['key2'].append(4)
d1['key2'].append(5)

d2 = defaultdict(set) 	#set backed multidict

d2['key1'].add(1)
d2['key1'].add(2)
d2['key1'].add(3)
d2['key2'].add(4)
d2['key2'].add(5)

>>> d1
defaultdict(<type 'list'>, {'key2': [4, 5], 'key1': [1, 2, 3]})

>>> d1['key1']
[1, 2, 3]

>>> d2
defaultdict(<type 'set'>, {'key2': set([4, 5]), 'key1': set([1, 2, 3])})

>>> d2['key1']
set([1, 2, 3])