我正在编写一个函数,在其中我尝试合并两个字典(称为数据库),而不重复任何键或修改原始的。我想我很接近,但我目前得到的错误'db1'没有定义,即使它是函数的参数之一。这是一个例子,两个字典和我需要他们看起来像合并
d1级
{'Leonardo da Vinci': [('Mona Lisa', 1503, 76.8, 53.0, 'oil paint', 'France'),
('The Last Supper', 1495, 460.0, 880.0, 'tempera', 'Italy')]}
d2级
{'Pablo Picasso' : [('Guernica', 1937, 349.0, 776.0, 'oil paint', 'Spain')],
'Leonardo da Vinci' : [("Portrait of Isabella d'Este", 1499, 63.0, 46.0, 'chalk', 'France'),
('The Last Supper', 1495, 460.0, 880.0, 'tempera', 'Italy')]}
合并
{'Pablo Picasso' : [('Guernica', 1937, 349.0, 776.0, 'oil paint', 'Spain')],
'Leonardo da Vinci': [('Mona Lisa', 1503, 76.8, 53.0, 'oil paint', 'France'),
("Portrait of Isabella d'Este", 1499, 63.0, 46.0, 'chalk', 'France'),
('The Last Supper', 1495, 460.0, 880.0, 'tempera', 'Italy')]}
正如你所见,关键“达芬奇”出现在两个字典,但应该只出现在合并字典一次。感谢任何能帮忙的人。这是我目前的代码:
def merge_databases (db1,db2):
ds = [db1, db2]
d = {}
for k in db1.iterkeys():
d[k] = tuple(d[k] for d in ds)
我想这就是你需要的:
甚至:
相关问题 更多 >
编程相关推荐