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'})
广告