come posso unire due dizionari in Python?

Python dictionaries which are used in data analytics frequently and by their nature are enclosed in {} and have key:value pairs, so the data in them can be retrieved easily.

Forse c'è uno scenario in cui è necessario unire due dizionari, ma come si può fare?

La cosa buona è che i dizionari Python sono non ordinati e mutabili, il che significa che ciò che li compone può essere cambiato.

Cominciamo creando due dizionari

dict1 = {"A":"1", "B":"2", "C":"3"}
dict2 = {"D":"4", "E":"5", "F":"6"}
print("dictionary 1 is:", dict1)
print("dictionary 2 is:", dict2)
print(type(dict1))
print(type(dict2))

Its output is as follows:
dictionary 1 is: {'A': '1', 'B': '2', 'C': '3'}
dictionary 2 is: {'D': '4', 'E': '5', 'F': '6'}
<class 'dict'>
<class 'dict'>

Quindi l'obiettivo è quello di ottenere questi due dizionari in uno solo, come si ottiene questo?

Approccio 1 - Utilizzare PEP 448

Questo approccio usa PEP 448 che permette di implementare * l'operatore di spacchettamento di iterable e ** gli operatori di spacchettamento di dizionario.

Come si può vedere qui sotto, è un modo rapido ed efficiente per unire rapidamente, senza impattare la struttura dei due dizionari.

dict3 = {**dict1, **dict2}
print(dict3)
print(type(3))

With output:
{'A': '1', 'B': '2', 'C': '3', 'D': '4', 'E': '5', 'F': '6'}
<class 'int'>

Approccio 2 - Aggiornare quando alcuni valori non sono richiesti.

Potreste trovarvi in una situazione in cui volete solo certi valori dal secondo dizionario.

Nel seguito ci sono chiavi comuni a entrambi i dizionari, cioè "A" e "B".

Quello che fa l'aggiornamento è mantenere tutti i valori del dizionario 1, e aggiungere qualsiasi coppia chiave-valore che non sia A o B.

Questo scenario potrebbe verificarsi quando dict1 è il dizionario principale e sempre corretto, e ha solo bisogno di nuovi valori aggiunti che non esistono già.

dict1 = {"A":"1", "B":"2", "C":"3"}
dict2 = {"A":"2", "E":"5", "B":"6"}
dict2.update((dict1))
print(dict2)
print(type(dict2))

Resulting in:
{'A': '1', 'E': '5', 'B': '2', 'C': '3'}
<class 'dict'>

Approccio 3 - Iterare sui dizionari

In questo scenario, ci sono alcune cose che accadono, che dovrebbero essere spiegate.

dict1.copy ===> Questo viene fatto in modo da avere l'originale, in quanto potrebbe essere aggiornato se ci fossero chiavi duplicate.

Il ciclo poi passa semplicemente attraverso le coppie chiave-valore di dict2, e aggiunge le coppie chiave-valore a dict3, che era originariamente dict1.

dict1 = {"A":"1", "B":"2", "C":"3"}
dict2 = {"D":"4", "E":"5", "F":"6"}

dict3 = dict1.copy()

for key,value in dict2.items():
    dict3[key] = value
print(dict3)

Which gives you:
{'A': '1', 'B': '2', 'C': '3', 'D': '4', 'E': '5', 'F': '6'}
<class 'dict'>

Riassumendo il tutto

In conclusione, a seconda del modo in cui vorreste avvicinarvi, abbiamo delineato delle opzioni.

Probabilmente la cosa più importante che è venuta fuori da questo, è che i dizionari possono essere cambiati, come risultato quando si applicano alcuni dei

tecniche di cui sopra, prima di procedere assicuratevi di controllare se volete mantenere i valori originali.