Possible Duplicate:
Python “extend” for a dictionary
I know that Python list can be appended or extended. Is there an easy way to combine two Python dictionaries with unique keys, for instance:
basket_one = {'fruit': 'watermelon', 'veggie': 'pumpkin'} basket_two = {'dairy': 'cheese', 'meat': 'turkey'}
I then want one big basket of food:
basket = { 'fruit': 'watermelon', 'veggie': 'pumpkin', 'dairy': 'cheese', 'meat': 'turkey' }
How can I perform the above in Python?
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 straight answer is NO. You can not have duplicate keys in a dictionary in Python.
[C#] Dictionary with duplicate keys The Key value of a Dictionary is unique and doesn't let you add a duplicate key entry.
The "oneliner way", altering neither of the input dicts, is
basket = dict(basket_one, **basket_two)
In case of conflict, the items from basket_two
will override the ones from basket_one
. As one-liners go, this is pretty readable and transparent, and I have no compunction against using it any time a dict that's a mix of two others comes in handy (any reader who has trouble understanding it will in fact be very well served by the way this prompts him or hear towards learning about dict
and the **
form;-). So, for example, uses like:
x = mungesomedict(dict(adict, **anotherdict))
are reasonably frequent occurrences in my code.
Note: In Python 3, this will only work if every key in anotherdict
is a string. See these alternatives.
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