Adding dictionaries together, Python
本问题已经有最佳答案,请猛点这里访问。
我有两本词典,希望能编一本:
像这样的伪python很不错:
1 2 3 4 5 | dic0 = {'dic0': 0} dic1 = {'dic1': 1} ndic = dic0 + dic1 # ndic would equal {'dic0': 0, 'dic1': 1} |
如果您有兴趣在不使用中间存储的情况下创建一个新的dict:(这比使用dict.items()更快,而且在我看来,更干净)
1 | dic2 = dict(dic0, **dic1) |
或者如果你愿意使用现有的听写:
1 | dic0.update(dic1) |
1 2 3 4 5 6 | >>> dic0 = {'dic0':0} >>> dic1 = {'dic1':1} >>> ndic = dict(dic0.items() + dic1.items()) >>> ndic {'dic0': 0, 'dic1': 1} >>> |
这里有很多添加字典的方法。
您可以使用python3的字典解包功能。
1 | ndic = {**dic0, **dic1} |
或者通过添加这两个项来创建新的dict。
1 | ndic = dict(dic0.items() + dic1.items()) |
如果您同意修改
1 | dic0.update(dic1) |
如果你不能修改
1 2 | ndic = dic0.copy() ndic.update(dic1) |
如果一个dict中的所有键都是字符串(在这种情况下,
1 | ndic = dict(dic0, **dic1) |
在某些情况下,使用dict理解(python 2.7或更高版本)可能很方便,特别是当您希望同时过滤或转换某些键/值时。
1 | ndic = {k: v for d in (dic0, dic1) for k, v in d.items()} |
您正在寻找更新方法
1 2 | dic0.update( dic1 ) print( dic0 ) |
给予
1 | {'dic0': 0, 'dic1': 1} |
下次提问前请先搜索该站点:如何连接两个字典以在python中创建一个新字典?
最简单的方法是简单地使用示例代码,但使用每个字典的items()成员。所以,代码应该是:
1 2 3 | dic0 = {'dic0': 0} dic1 = {'dic1': 1} dic2 = dict(dic0.items() + dic1.items()) |
我在空闲时测试过这个,它工作得很好。然而,前面关于这个主题的问题指出,这个方法很慢,而且会消耗内存。这里还推荐了其他几种方法,因此请注意,如果内存使用很重要。
1 | dic0.update(dic1) |
注意,这实际上并不返回组合字典,它只是变异