Let's say I have a dictionary:
x = {"x1":1,"x2":2,"x3":3}
and I have another dictionary:
y = {"y1":1,"y2":2,"y3":3}
Is there any neat way to constract a 3rd dictionary from the previous two:
z = {"y1":1,"x2":2,"x1":1,"y2":2}
The straight answer is NO. You can not have duplicate keys in a dictionary in Python.
Using | in Python 3.9 In the latest update of python now we can use “|” operator to merge two dictionaries. It is a very convenient method to merge dictionaries.
The Key value of a Dictionary is unique and doesn't let you add a duplicate key entry.
If you want the whole 2 dicts:
x = {"x1":1,"x2":2,"x3":3}
y = {"y1":1,"y2":2,"y3":3}
z = dict(x.items() + y.items())
print z
Output:
{'y2': 2, 'y1': 1, 'x2': 2, 'x3': 3, 'y3': 3, 'x1': 1}
If you want the partial dict:
x = {"x1":1,"x2":2,"x3":3}
y = {"y1":1,"y2":2,"y3":3}
keysList = ["x2", "x1", "y1", "y2"]
z = {}
for key, value in dict(x.items() + y.items()).iteritems():
if key in keysList:
z.update({key: value})
print z
Output
{'y1': 1, 'x2': 2, 'x1': 1, 'y2': 2}
You can use copy
for x
then update
to add the keys and values from y
:
z = x.copy()
z.update(y)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With