博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[PY3]——合并多个字典或映射(collections模块中的ChainMap 类)
阅读量:5081 次
发布时间:2019-06-12

本文共 766 字,大约阅读时间需要 2 分钟。

问题

现在有多个字典或者映射,你想将它们从逻辑上合并为一个单一的映射后执行某些操作, 比如查找值或者检查某些键是否存在。

解决方案

使用 collections 模块中的 ChainMap 类

ChainMap类

1. 一个 ChainMap 接受多个字典并将它们在逻辑上变为一个字典。 然后,这些字典并不是真的合并在一起了, ChainMap 类只是在内部创建了一个容纳这些字典的列表 并重新定义了一些常见的字典操作来遍历这个列表。大部分字典操作都是可以正常使用的。

a={
'x':1,'z':3}b={
'y':2,'z':6}from collections import ChainMapc=ChainMap(a,b)print(c) ChainMap({'x': 1, 'z': 3}, {'z': 6, 'y': 2})print(len(c)) 3print(list(c.keys())) ['x', 'z', 'y']print(list(c.values())) [1, 3, 2]print(c['z']) 3

2. 如果出现重复键,那么第一次出现的映射值会被返回。对于字典的更新或删除操作也总是影响的是列表中第一个字典。

3. 更新ChainMap字典和更新原字典,他们彼此都会随之更新。

c['z']=30print(a);print(b) {
'x': 1, 'z': 30} {
'z': 6, 'y': 2}a['x']=100print(c) ChainMap({
'x': 100, 'z': 30}, {
'z': 6, 'y': 2})

 

转载于:https://www.cnblogs.com/snsdzjlz320/p/7206247.html

你可能感兴趣的文章
BootStrap---2.表格和按钮
查看>>
Linear Algebra lecture 2 note
查看>>
CRC计算模型
查看>>
Ajax之404,200等查询
查看>>
Aizu - 1378 Secret of Chocolate Poles (DP)
查看>>
csv HTTP简单表服务器
查看>>
OO设计的接口分隔原则
查看>>
数据库连接字符串大全 (转载)
查看>>
java类加载和对象初始化
查看>>
对于负载均衡的理解
查看>>
django简介
查看>>
window.event在IE和Firefox的异同
查看>>
常见的js算法面试题收集,es6实现
查看>>
IO流写出到本地 D盘demoIO.txt 文本中
查看>>
Windows10 下Apache服务器搭建
查看>>
HDU 5458 Stability
查看>>
左手坐标系和右手坐标系
查看>>
solr后台操作Documents之增删改查
查看>>
http://yusi123.com/
查看>>
文件文本的操作
查看>>