Объединить значения словарей

Beginner

This tutorial is from open-source community. Access the source code

Введение

Словари - это фундаментальная структура данных в Python, и они используются для хранения пар ключ-значение. Иногда мы можем захотеть объединить значения двух или более словарей в один словарь. В этом испытании вы напишете функцию, которая принимает два или более словарей в качестве аргументов и возвращает новый словарь, который объединяет значения входных словарей.

Объединить значения словарей

Напишите функцию combine_values(*dicts), которая принимает два или более словарей в качестве аргументов и возвращает новый словарь, который объединяет значения входных словарей. Функция должна выполнять следующие шаги:

  1. Создайте новый collections.defaultdict с list в качестве значения по умолчанию для каждого ключа.
  2. Переберите входные словари и для каждого словаря:
    • Переберите ключи словаря.
    • Добавьте значение ключа в список значений для этого ключа в defaultdict.
  3. Преобразуйте defaultdict в обычный словарь с использованием функции dict().
  4. Верните полученный словарь.

Функция должна иметь следующую сигнатуру:

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]}

Резюме

В этом испытании вы узнали, как объединить значения двух или более словарей в один словарь. Вы написали функцию, которая принимает два или более словарей в качестве аргументов и возвращает новый словарь, который объединяет значения входных словаря.