Python 中的 ChainMap


ChainMap 用于将字典封装到一个单元中。

ChainMap是一个标准库类,位于 collections 模块中。

要使用它,首先需要导入 collections 标准库模块。

import collections

在本节中,我们将看到 ChainMap 类的某些函数

maps、keys() 和 values() 函数

maps 用于显示来自 ChainMap 的所有字典的所有键值对。keys() 方法将返回 ChainMap 中的键,values() 方法返回来自 ChainMap 中不同键的所有值。

示例代码

import collections as col
con_code1 = {'India' : 'IN', 'China' : 'CN'}
con_code2 = {'France' : 'FR', 'United Kingdom' : 'GB'}
chain = col.ChainMap(con_code1, con_code2)
print("Initial Chain: " + str(chain.maps))
print('The keys in the ChainMap: ' + str(list(chain.keys())))
print('The values in the ChainMap: ' + str(list(chain.values())))

Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.

输出

Initial Chain: [{'India': 'IN', 'China': 'CN'}, {'France': 'FR', 'United Kingdom': 'GB'}]
The keys in the ChainMap: ['China', 'United Kingdom', 'India', 'France']
The values in the ChainMap: ['CN', 'GB', 'IN', 'FR']

new_child() 和 reversed 方法

new_child() 方法用于在开始时向 ChainMap 添加另一个字典对象。reversed 方法还可以用于 ChainMap 以反转键值对的顺序。

示例代码

import collections as col
con_code1 = {'India' : 'IN', 'China' : 'CN'}
con_code2 = {'France' : 'FR', 'United Kingdom' : 'GB'}
code = {'Japan' : 'JP'}
chain = col.ChainMap(con_code1, con_code2)
print("Initial Chain: " + str(chain.maps))
chain = chain.new_child(code)    #Insert New Child
print("Chain after Inserting new Child: " + str(chain.maps))
chain.maps = reversed(chain.maps)
print("Reversed Chain: " + str(chain))

输出

Initial Chain: [{'India': 'IN', 'China': 'CN'}, {'France': 'FR', 'United Kingdom': 'GB'}]
Chain after Inserting new Child: [{'Japan': 'JP'}, {'India': 'IN', 'China': 'CN'}, {'France': 'FR', 'United Kingdom': 'GB'}]
Reversed Chain: ChainMap({'France': 'FR', 'United Kingdom': 'GB'}, {'India': 'IN', 'China': 'CN'}, {'Japan': 'JP'})

更新于:2019-07-30

794 次浏览

开启你的职业生涯

完成课程获得认证

开始
广告