当前位置: 首页 > wzjs >正文

用excel做网站百度广告点击软件源码

用excel做网站,百度广告点击软件源码,seo网上培训课程,拼车网站开发bidict,可以双向查询的dict 基本使用创建双向字典正向查找(key → value)反向查找(value → key)添加新项删除项 进阶功能使用 ~ (.inverse)获取逆映射使用 namedbidict 创建具名双向字典批量更…

bidict,可以双向查询的dict

    • 基本使用
      • 创建双向字典
      • 正向查找(key → value)
      • 反向查找(value → key)
      • 添加新项
      • 删除项
    • 进阶功能
      • 使用 ~ (.inverse)获取逆映射
      • 使用 namedbidict 创建具名双向字典
      • 批量更新
      • 不可变双向映射

bidict 是一个高性能的双向字典库,所谓 双向字典,就是你可以通过键(key)查找值(value),也可以通过值反查键。我们知道,dict中键是唯一的,但值可以重复,而在 bidict 中,键和值都必须唯一,确保映射的双向性。

相比于使用组合使用dict,bidict主要有以下优点:

  1. 高效的查找操作:bidict 使用哈希表实现,确保键和值的查找操作都具有常数时间复杂度(O(1)),与原生字典相当。
  2. 内存优化:相比手动维护两个字典(一个正向,一个反向),bidict 通过内部机制共享数据结构,减少冗余存储,提高内存利用率。
  3. 冲突检测与强制更新:在插入新项时,bidict 会自动检测键或值的重复,防止数据不一致。对于需要覆盖的情况,提供了 forceput 方法,允许强制更新。
  4. 轻量级实现:bidict 仅依赖 Python 标准库,无需额外安装其他依赖,适合嵌入式或资源受限的环境。

下面我们通过一个例子来实践一下bidict的使用:

现有一组学生信息数据,对于一个学生来说,他的身份证号是唯一的,而学号也是唯一的,数据如下表,这时我们就可以使用“身份证号<->学号“构建一个bidict双向字典。

身份证号学号姓名
SFZ1001001XH101111小赵
SFZ2021011XH101112小钱
SFZ3121212XH101113小孙
SFZ2231221XH101114小李
SFZ4231511XH101115小王

基本使用

创建双向字典

from bidict import bidict
student_info = bidict({'XH101111': 'SFZ1001001', 'XH101112': 'SFZ2021011''XH101113': 'SFZ3121212', 'XH101114': 'SFZ2231221', 'XH101115': 'SFZ4231511'
})

正向查找(key → value)

print(student_info['XH101111'])

反向查找(value → key)

print(student_info.inverse['SFZ1001001'])

添加新项

student_info['XH101116'] = 'SFZ8223521'

删除项

del student_info['XH101116'])

进阶功能

使用 ~ (.inverse)获取逆映射

student_info_inv = ~student_info
# 等同于 student_info_inv = student_info.inverse
print(student_info_inv['SFZ1001001']) 
# 等同于
print(student_info.inverse['SFZ1001001'])

注意:
1、使用 ~ 运算符时,需加括号以确保优先级正确,如 (~student_info)[3]
2、逆映射对象是一个轻量级视图对象,和原字典共享数据。

使用 namedbidict 创建具名双向字典

from bidict import namedbidictStudentInfo = namedbidict('StudentInfo', 'id_number', 'student_number')
student_info = StudentInfo({'XH101111': 'SFZ1001001', 'XH101112': 'SFZ2021011''XH101113': 'SFZ3121212', 'XH101114': 'SFZ2231221', 'XH101115': 'SFZ4231511'
})print(student_info.id_number['SFZ1001001'])
print(student_info.student_number['XH101111'])

批量更新

student_info.update({'XH101116': 'SFZ8223521', 'XH101117': 'SFZ6352329'})

如果需要强制更新(即覆盖已有的键或值),可以使用 forceupdate 方法:

student_info.forceupdate({'XH101111': 'SFZ1001002'})

不可变双向映射

类似于 frozenset,可用于哈希键、函数缓存等场景:

from bidict import frozenbidictfb = frozenbidict({'a': 1, 'b': 2})
print(fb['a'])        
print(fb.inverse[2])  
# 如果进行新增/更新操作,则会报错
fb['c'] = 3  
http://www.dtcms.com/wzjs/173245.html

相关文章:

  • 地方门户网站建设长沙网站制作推广
  • 专做排版网站百度网址大全首页链接
  • .net网站 作品广告投放是做什么的
  • 淄博哪家公司做网站最好app安装下载
  • 怎么设计一个网站站长检测工具
  • 注册做网站的营业执照抖音seo培训
  • 网页制作三剑客软件下载网站自然优化
  • 网站制作 中企动力公司亚洲卫星电视网参数表
  • 营销策划方案书seo店铺描述例子
  • 不用网站怎么做落地页百度销售岗位怎么样
  • 网站项目建设方案南昌seo排名
  • 在哪里可以学装修设计手机网站怎么优化
  • 国外免费建站网站打开速度优化
  • 如何做高端网站北京疫情最新消息
  • 展览设计网站有哪些2021最火营销方案
  • 丰都专业网站建设公司注册域名费用一般多少钱
  • 做简单网站需要学什么软件品牌传播推广方案
  • 网站开发的行业情况分析线上引流的八种推广方式
  • 网站浏览思路网络广告案例以及分析
  • 滁州做网站价格最好看免费观看高清视频了
  • 制作网站视频爱站网排行榜
  • 国内优秀个人网站欣赏廊坊快速优化排名
  • 大连网站建设意动科技公司西安市网站
  • 网站建设案例精英seo网站快速排名软件
  • 中国铁建网站图片扫一扫在线识别照片
  • 建设网络文化网站的请示外链提交
  • 手机网站横向切换百度搜索引擎网址格式
  • 课题组研究网站怎么做免费建网站最新视频教程
  • 如何选择企业网站建设做个网站
  • 做博客网站什么空间好论坛推广案例