ChainMap
类被添加到collections
模块中:
提供了一个ChainMap类,用于快速链接多个映射,以便将它们视为单个单位。它通常比创建新字典并运行多个update()调用要快得多。
示例:
>>> from collections import ChainMap
>>> x = {'a': 1, 'b': 2}
>>> y = {'b': 10, 'c': 11}
>>> z = ChainMap(y, x)
>>> for k, v in z.items():
print(k, v)
a 1
c 11
b 10
这个想法源于 这个问题 并由 这个人 公开发表(无需创建 PEP
)。
据我所知,它是拥有额外的字典并通过 update()
来维护它的一种替代方案。
问题是:
ChainMap
能够解决哪些使用案例?- 是否有任何关于
ChainMap
的现实世界的示例? - 它在第三方库中被用于切换到 python3 吗?
奖励问题:是否有方法在 Python2.x 上使用它?
我在Raymond Hettinger的Transforming Code into Beautiful, Idiomatic Python
PyCon演讲中听说过它,我想将其添加到我的工具包中,但我不太理解何时应该使用它。
from ConfigParser import _ChainMap as ChainMap
。 - Raymond HettingerChainMap
本身。您可以将这一系列评论转化为一个很好的回答 :) - alecxe