python字典中怎么用函数实现相同key合并
时间: 2023-12-26 17:06:31 浏览: 27
可以使用Python内置的`defaultdict`和`lambda`函数来实现相同key合并。
首先需要导入`defaultdict`模块:
```python
from collections import defaultdict
```
然后可以定义一个空的`defaultdict`对象,并将其值类型设置为列表。这样,当我们向这个字典添加新的键值对时,如果键已经存在,则将新的值添加到该键对应的列表中。
例如,假设我们有一个字典`d`:
```python
d = {'key1': [1, 2, 3], 'key2': [4, 5, 6], 'key3': [7, 8, 9]}
```
现在我们想要将具有相同键的值合并成一个列表。我们可以使用以下函数:
```python
def merge_dict(d):
result = defaultdict(list)
for key, value in d.items():
result[key].extend(value)
return dict(result)
```
该函数接受一个字典作为输入,并返回一个新的字典,其中所有具有相同键的值已经被合并成了一个列表。例如,如果我们将`d`作为输入传递给该函数,将得到以下输出:
```python
{'key1': [1, 2, 3], 'key2': [4, 5, 6], 'key3': [7, 8, 9]}
```
因为`d`中没有相同的键。但如果我们将以下字典作为输入:
```python
d = {'key1': [1, 2, 3], 'key2': [4, 5, 6], 'key1': [7, 8, 9]}
```
那么当我们将`d`作为输入传递给`merge_dict`函数时,将得到以下输出:
```python
{'key1': [1, 2, 3, 7, 8, 9], 'key2': [4, 5, 6]}
```
可以看到,具有相同键的值已经被合并成了一个列表。