ChainMap用于将字典封装为单个单元。
ChainMap是一个标准的库类,它位于collections模块中。
首先要使用它,我们需要将其导入集合标准库模块。
import collections
在本节中,我们将看到ChainMap类的一些功能
keys()
values()
方法映射用于显示ChainMap中所有词典的所有键值对。该keys()
方法将从ChainMap返回键,而该方法从ChainMapvalues()
返回所有values()
不同键。
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())))
输出结果
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()方法用于在开始时将另一个字典对象添加到ChainMap中。反向方法也可以用于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'})