我有两本词典,我希望能够成为一本词典:
像这样的伪Python会很好:
dic0 = {'dic0': 0}
dic1 = {'dic1': 1}
ndic = dic0 + dic1
# ndic would equal {'dic0': 0, 'dic1': 1}
答案 0 :(得分:143)
如果您对不使用中间存储创建新dict感兴趣:(这比使用dict.items()更快,在我看来更清晰)
dic2 = dict(dic0, **dic1)
或者,如果您乐意使用其中一个现有的词组:
dic0.update(dic1)
答案 1 :(得分:16)
>>> dic0 = {'dic0':0}
>>> dic1 = {'dic1':1}
>>> ndic = dict(dic0.items() + dic1.items())
>>> ndic
{'dic0': 0, 'dic1': 1}
>>>
答案 2 :(得分:11)
答案 3 :(得分:10)
以下是添加词典的几种方法。
您可以使用Python3的字典解包功能。
ndic = {**dic0, **dic1}
或者通过添加两个项目来创建新的dict。
ndic = dict(dic0.items() + dic1.items())
如果您可以修改dic0
dic0.update(dic1)
如果不可以修改dic0
ndic = dic0.copy()
ndic.update(dic1)
如果一个字典中的所有键都被确保为字符串(在这种情况下为dic1
,当然可以交换args)
ndic = dict(dic0, **dic1)
在某些情况下,使用字典理解(Python 2.7或更新版本)可能很方便,特别是如果你想同时过滤掉或转换某些键/值。
ndic = {k: v for d in (dic0, dic1) for k, v in d.items()}
答案 4 :(得分:5)
dic0.update(dic1)
请注意,这实际上不会返回组合字典,只是改变了dic0
。
答案 5 :(得分:5)
请在下次提问前先搜索网站:how to concatenate two dictionaries to create a new one in Python?
最简单的方法是简单地使用您的示例代码,但使用每个字典的items()成员。所以,代码将是:
dic0 = {'dic0': 0}
dic1 = {'dic1': 1}
dic2 = dict(dic0.items() + dic1.items())
我在IDLE中对此进行了测试,它运行正常。 但是,关于此主题的上一个问题表明此方法很慢并且会占用内存。还有其他几种方法,所以请注意,如果内存使用很重要。