'how to assign value in dict1 to dict2 if the key are the same without loop
Now I have two dicts, and one is a template(values are empty). Now I want to assign values in dict2 to dict1 if the key in two dicts is the same. But without using loop(better not access in two dicts). Just operate in the dictionary layer. the two dicts are like:
dict1: dict2:
{ {
"indexed": true, "name": "_target",
"internalType": "", "type": "address",
"name": "", "result": "0xED3A954c0ADFC8"
"type": "", }
"result": ""
}
in the last I wanna get:
{
"indexed": true,
"internalType": "",
"name": "_target",
"type": "address",
"result": "0xED3A954c0ADFC8"
}
without access in two dict(no loop)
In my opinion, this could use set to manipulate it, but I can't manage to do it.
Solution 1:[1]
Possible solutions are the following:
dict1 = {"indexed": True, "internalType": "", "name": "", "type": "", "result": ""}
dict2 = {"name": "_target", "type": "address", "result": "0xED3A954c0ADFC8"}
Python 3.9+:
dict_3 = dict1 | dict2
Python 3.5+:
dict_3 = {**dict1, **dict2}
Prints
print(dict_3)
{'indexed': True,
'internalType': '',
'name': '_target',
'type': 'address',
'result': '0xED3A954c0ADFC8'}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | gremur |
