如何连接两个字典在Python中创建一个新的字典?
这个问题在这里已经有了答案:
最慢并且在Python3中不起作用:连接items
并在结果列表中调用dict
:
$ python -mtimeit -s'd1={1:2,3:4}; d2={5:6,7:9}; d3={10:8,13:22}'
'd4 = dict(d1.items() + d2.items() + d3.items())'
100000 loops, best of 3: 4.93 usec per loop
最快:利用dict
构造函数来处理,然后进行一次update
:
$ python -mtimeit -s'd1={1:2,3:4}; d2={5:6,7:9}; d3={10:8,13:22}'
'd4 = dict(d1, **d2); d4.update(d3)'
1000000 loops, best of 3: 1.88 usec per loop
Middling:一个最初为空的字典上的update
调用循环:
$ python -mtimeit -s'd1={1:2,3:4}; d2={5:6,7:9}; d3={10:8,13:22}'
'd4 = {}' 'for d in (d1, d2, d3): d4.update(d)'
100000 loops, best of 3: 2.67 usec per loop
或者,等价地,一个副本和两个更新:
$ python -mtimeit -s'd1={1:2,3:4}; d2={5:6,7:9}; d3={10:8,13:22}'
'd4 = dict(d1)' 'for d in (d2, d3): d4.update(d)'
100000 loops, best of 3: 2.65 usec per loop
我推荐的方法(2),我特别推荐避免(1)(它也占用O(N)个额外的辅助内存,用于连接项目临时数据结构列表)。
d4 = dict(d1.items() + d2.items() + d3.items())
或者(据说更快):
d4 = dict(d1)
d4.update(d2)
d4.update(d3)
以前所以这些答案都来自这里的问题。
您可以使用update()
方法来构建一个包含所有项目的新字典:
dall = {}
dall.update(d1)
dall.update(d2)
dall.update(d3)
或者,在一个循环中:
dall = {}
for d in [d1, d2, d3]:
dall.update(d)
链接地址: http://www.djcxy.com/p/17555.html
上一篇: how to concatenate two dictionaries to create a new one in Python?
下一篇: SVG title delay