首页 > 文章列表 > python ChainMap的调用效率

python ChainMap的调用效率

Python ChainMap
334 2022-08-07

ChainMap 类提供用于快速链接多个 dict,以便将它们视为单个单元。它通常比创建新 dict 和运行多个 update() 调用要快得多。

In [1]: from collections import ChainMap
 
In [2]: d1 = {'java': 3, 'python': 4}
 
In [3]: d2 = {'c++': 1, 'java': 2}
 
In [4]: for key, val in ChainMap(d1, d2).items():
   ...:     print(key, val)
   ...:     
c++ 1
java 3
python 4

拓展:

后出现的重复的 key 将被忽略

 ChainMap 将链接的 dict 存储在一个列表中。该列表是公开的,可以使用 maps 属性进行访问或更新。

In [10]: c1 = ChainMap(d1, d2)
 
In [11]: c1.maps[0]
Out[11]: {'java': 3, 'python': 4}
 
In [12]: c1.maps[0]['python'] = 2
 
In [13]: c1.items()
Out[13]: ItemsView(ChainMap({'java': 3, 'python': 2}, {'c++': 1, 'java': 2}))
 
In [14]: dict(c1)
Out[14]: {'c++': 1, 'java': 3, 'python': 2}