我有两本字典,我想把它们合成一本:
类似这样的伪 Python 应该不错:
dic0 = {'dic0': 0} dic1 = {'dic1': 1} ndic = dic0 + dic1 # ndic would equal {'dic0': 0, 'dic1': 1}
你要找的是 更新方法
dic0.update( dic1 ) print( dic0 )
给予
{'dic0': 0, 'dic1': 1}
dic0.update(dic1)
注意,这实际上并不返回组合字典,它只是变异了 dic0。
dic0
>>> dic0 = {'dic0':0} >>> dic1 = {'dic1':1} >>> ndic = dict(dic0.items() + dic1.items()) >>> ndic {'dic0': 0, 'dic1': 1} >>>
最简单的方法是使用示例代码,但是使用每个字典的 item ()成员。所以密码是:
dic0 = {'dic0': 0} dic1 = {'dic1': 1} dic2 = dict(dic0.items() + dic1.items())
我在 IDLE 中测试了它,它工作得很好。 但是,前面关于这个主题的问题指出,这种方法速度很慢,占用了大量内存。还有其他几种推荐的方法,所以请注意内存使用是否重要。
如果您有兴趣在不使用中间存储的情况下创建一个新 dict: (这比使用 dict.items()更快,而且在我看来更干净)
dict.items()
dic2 = dict(dic0, **dic1)
或者,如果你乐意使用现有的一种说法:
这里有一些添加字典的方法。
您可以使用 Python 3的字典解包特性。
ndic = {**dic0, **dic1}
或者通过添加这两个项目来创建一个新的 dict。
ndic = dict(dic0.items() + dic1.items())
如果修改 dic0是可以的:
如果修改 dic0是 没有,OK:
ndic = dic0.copy() ndic.update(dic1)
如果确保一个 dict 中的所有键都是字符串(在本例中为 dic1,当然可以交换参数)
dic1
ndic = dict(dic0, **dic1)
在某些情况下,使用 dict 理解(Python 2.7或更新版本) < br > 可能会很方便,特别是如果您希望同时过滤或转换某些键/值。
ndic = {k: v for d in (dic0, dic1) for k, v in d.items()}