一起添加词典,Python

时间:2011-05-14 22:04:12

标签: python dictionary append

我有两本词典,我希望能够成为一本词典:

像这样的伪Python会很好:

dic0 = {'dic0': 0}
dic1 = {'dic1': 1}

ndic = dic0 + dic1
# ndic would equal {'dic0': 0, 'dic1': 1}

6 个答案:

答案 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)

您正在寻找update method

dic0.update( dic1 )
print( dic0 ) 

给出

{'dic0': 0, 'dic1': 1}

答案 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中对此进行了测试,它运行正常。 但是,关于此主题的上一个问题表明此方法很慢并且会占用内存。还有其他几种方法,所以请注意,如果内存使用很重要。