я пытаюсь построить функциюДобавление словарей
def adding_3dict(d1,d2,d3)
Функция получает 3 словаря d1, d2, d3, создать из них один словарь D таким образом, что если ключ находится в более чем одной словарь из d1, d2, d3, его значение в D будет кортежем со всеми его значениями во всех словарях. Остальные пары из d1, d2, d3 копируются, как и в D. Функция возвращает новый словарь Д.
Пример:
d1={1:'a',3:'d',5:'e'}
d2={1:'b',3:(11,22),7:'f',4:'q'}
d3={2:'c',3:'x',4:'t',8:'g'}
Словарь выход:
d = {1: ('a', 'b'), 2: 'c', 3: ('d', (11, 22), 'x'), 4: ('q', 't'), 5: 'e', 7: 'f', 8: 'g'}
я попробовал:
import collections
d1={}
d2={}
d3={}
def adding_3dict(d1,d2,d3):
d={}
d=dict(d1.items() + d2.items()+ d3.items())
return d
я попробовал и мой выход это:
>>>
>>> adding_3dict({1:'a',3:'d',5:'e'}, {1:'b',3:(11,22),7:'f',4:'q'} , {2:'c',3:'x',4:'t',8:'g'})
{1: 'b', 2: 'c', 3: 'x', 4: 't', 5: 'e', 7: 'f', 8: 'g'} #the output
>>>
как я могу изменить выход из
{1: 'b', 2: 'c', 3: 'x', 4: 't', 5: 'e', 7: 'f', 8: 'g'}
в
{1: ('a', 'b'), 2: 'c', 3: ('d', (11, 22), 'x'), 4: ('q', 't'), 5: 'e', 7: 'f', 8: 'g'}
Нужны ли кортежи здесь? Не могли бы вы использовать списки? Кортежи неизменны и усложняют ситуацию. – amyrit