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

> 原文： [https://howtodoinjava.com/python/multidict-key-to-multiple-values/](https://howtodoinjava.com/python/multidict-key-to-multiple-values/)

## 1.什么是多重字典

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

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

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

```

1\.  如果您想保留项目的插入顺序，请使用`List`。

2\.  如果您想消除重复项（并且不关心顺序），请使用`Set`。

## 2\. 多重字典示例

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

```java
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])

```

学习愉快！