Объединение двух словарей при совместном использовании ключей

Я пытаюсь создать небольшую программу, которая, учитывая словарь, содержащий имена и адреса, и другой словарь, содержащий имена и телефонные номера, вывод должен объединить их обоих (и не перезаписывать друг друга). Окончательный выходной словарь должен содержать имя, адрес (если есть) и телефон (если есть). Вот'Вот пример:

addr = {'George': 'via Wagner, 23', 'White': 'Piazza Bologna, 1',
    'L. Red': 'via A. Einstein, 12', 'Pete': 'via Pio'}
phone = {'Mark': '347 8987989', 'George': '06 89786765',
     'Mauro B.': '3489878675', 'Pete': '07897878', 'L. Red': '09877887'}

И последний словарь:

addr_phone(addr, phone) -->
{'George':    {'address': 'via Wagner, 23'},
 'Mark':      {'phone': '347 8987989'},
 'George':    {'phone': '06 89786765'},
 'L. Red':   {'phone': '09877887', 'address': 'via A. Einstein, 12'},
 'Pete':       {'phone': '07897878', 'address': 'via Pio'},
 'Mauro B.':   {'phone': '3489878675'},
 'White': {'address': 'Piazza Bologna, 1'}}

Я пытался написать это:

def addr_phone(addr, phone):
    d3={}
    d3.update(addr)
    d3.update(phone)
    for k,v in phone.items():
        if k not in addr:
            d3[k]=v
    return d3

Но я получаю несколько экземпляров с одним и тем же именем, и этоне то, что я хочу. Спасибо за вашу помощь.

Ответы на вопрос(1)

Ваш ответ на вопрос