开发者

How can 2 Python dictionaries become 1? [duplicate]

This question already has answers 开发者_Python百科here: Closed 13 years ago.

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?


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.


basket = basket_one.copy()
basket.update(basket_two)

(if the original basket_one does not need to stay intact, you can leave out the copy)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜