如何连接两个字典在Python中创建一个新的字典?

这个问题在这里已经有了答案:

  • 如何在单个表达式中合并两个字典? 48个答案

  • 最慢并且在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