Введение
Словари - это фундаментальная структура данных в Python, и они используются для хранения пар ключ-значение. Иногда мы можем захотеть объединить значения двух или более словарей в один словарь. В этом испытании вы напишете функцию, которая принимает два или более словарей в качестве аргументов и возвращает новый словарь, который объединяет значения входных словарей.
Объединить значения словарей
Напишите функцию combine_values(*dicts), которая принимает два или более словарей в качестве аргументов и возвращает новый словарь, который объединяет значения входных словарей. Функция должна выполнять следующие шаги:
- Создайте новый
collections.defaultdictсlistв качестве значения по умолчанию для каждого ключа. - Переберите входные словари и для каждого словаря:
- Переберите ключи словаря.
- Добавьте значение ключа в список значений для этого ключа в
defaultdict.
- Преобразуйте
defaultdictв обычный словарь с использованием функцииdict(). - Верните полученный словарь.
Функция должна иметь следующую сигнатуру:
def combine_values(*dicts):
pass
from collections import defaultdict
def combine_values(*dicts):
res = defaultdict(list)
for d in dicts:
for key in d:
res[key].append(d[key])
return dict(res)
d1 = {'a': 1, 'b': 'foo', 'c': 400}
d2 = {'a': 3, 'b': 200, 'd': 400}
combine_values(d1, d2) ## {'a': [1, 3], 'b': ['foo', 200], 'c': [400], 'd': [400]}
Резюме
В этом испытании вы узнали, как объединить значения двух или более словарей в один словарь. Вы написали функцию, которая принимает два или более словарей в качестве аргументов и возвращает новый словарь, который объединяет значения входных словаря.