Führen Sie zwei Wörterbücher zusammen, während Sie die Schlüssel gemeinsam nutzen

Ich versuche ein kleines Programm zu erstellen, das angesichts eines Wörterbuchs mit Namen und Adressen und eines anderen Wörterbuchs mit Namen und Telefonnummern beide zusammenführt (und sich nicht überschreibt). Das endgültige Ausgabewörterbuch sollte Name, Adresse (falls verfügbar) und Telefon (falls verfügbar) enthalten. Hier ist ein Beispiel:

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

Und das letzte Wörterbuch:

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

Ich habe versucht, dies zu schreiben:

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

Aber ich bekomme mehrere Instanzen mit demselben Namen und es ist nicht das, was ich will. Danke für Ihre Hilfe.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage