аватар question@mail.ru · 01.01.1970 03:00

Составной словарь в Python с несколькими значениями из других словарей по идентичному ключу

Сразу оговорюсь – я не программист, а изучаю Python для собственных конкретных целей (обработка данных, полученных из сети), поэтому если мой вопрос покажется наивным и простым – прошу не пенять.

Итак, есть три разных словаря с идентичными ключами. Значения – разные, но могут совпадать как в пределах одного словаря, так и в разных словарях. Например (значения сделал в виде списка, поскольку понимаю, что по-другому добавлять значения к одному ключу не выйдет):

dict_1={'a': [2],    'b': [8],    'c': [6],    'd': [2]}dict_2={'a': [2],    'b': [7],    'c': [7],    'd': [3]}dict_3={'a': [3],    'b': [6],    'c': [8],    'd': [3]}

Задача: получить новый словарь (либо с нуля, либо на основе одного из указанных – совершенно не важно) в котором каждый ключ получит значения от всех трёх словарей:

dict_all={'a': [2, 2, 3],      'b': [8, 7, 6],      'c': [6, 7, 8],      'd': [2, 3, 3]}
аватар answer@mail.ru · 01.01.1970 03:00
import copydict_all = copy.deepcopy(dict_1)for loop_dict in dict_2, dict_3:    for k, v in loop_dict.items():        try:            dict_all[k].extend(v)        except KeyError:            dict_all[k] = v

Если сохранность в исходном виде dict_1 не нужна, можно обойтись без его глубокого копирования. Перехват ислкючения нужен на случай, если в dict_1 нет каких-либо ключей, встречающихся в других словарях.

Последние

Похожие