Python的“二维”字典 (two-dimension dictionary)定义与实现方法


Posted in Python onApril 27, 2016

本文实例讲述了Python的“二维”字典 (two-dimension dictionary)定义与实现方法。分享给大家供大家参考,具体如下:

Python 中的dict可以实现迅速查找。那么有没有像数组有二维数组一样,有二维的字典呢?比如我需要对两个关键词进行查找的时候。2D dict 可以通过

dict_2d = {'a': {'a': 1, 'b': 3}, 'b': {'a': 6}}

来建立,并通过

dict_2d['a']['b']

来访问。但是添加一个新的 “key-value”对却比较复杂。对一维字典,可以用

dict_1d = dict()
dict_1d['a'] = 1

或者

dict_1d.update({'a': 1})

来实现。但是”2-D” dictionary 新添一个”key-value”对时,不能简单的用

dict_2d['a']['c'] = 8

的形式。因为二维字典的两层key和value之间会混淆,需要判断第一个key是否已经存在了。添加二维的字典可以通过一个函数来简单实现:

def addtwodimdict(thedict, key_a, key_b, val):
  if key_a in adic:
    thedict[key_a].update({key_b: val})
  else:
    thedict.update({key_a:{key_b: val}})

比如可以用作查找城市之间的距离

mapdict = dict()
addtwodimdict(mapdict, 'Beijing', 'Guangzhou', 1897)
addtwodimdict(mapdict, 'Chengdu', 'Guangzhou', 1243)
addtwodimdict(mapdict, 'Guangzhou', 'Shanghai', 1212)
addtwodimdict(mapdict, 'Beijing', 'Chengdu', 1516)
addtwodimdict(mapdict, 'Chengdu', 'Shanghai', 1657)
addtwodimdict(mapdict, 'Beijing', 'Shanghai', 1075)
print 'The distance between Chengdu and Guangzhou is ',mapdict['Chengdu']['Guangzhou']

还是挺方便的。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python发送以整个文件夹的内容为附件的邮件的教程
May 06 Python
发布你的Python模块详解
Sep 15 Python
python3操作mysql数据库的方法
Jun 23 Python
Python中的pygal安装和绘制直方图代码分享
Dec 08 Python
pygame游戏之旅 游戏中添加显示文字
Nov 20 Python
Python设计模式之原型模式实例详解
Jan 18 Python
Python+OpenCV图片局部区域像素值处理改进版详解
Jan 23 Python
pytorch中使用cuda扩展的实现示例
Feb 12 Python
python实现对变位词的判断方法
Apr 05 Python
python是怎么被发明的
Jun 15 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
Oct 27 Python
python 镜像环境搭建总结
Sep 23 Python
Python单链表简单实现代码
Apr 27 #Python
python版本的读写锁操作方法
Apr 25 #Python
Python简单实现enum功能的方法
Apr 25 #Python
Python爬虫辅助利器PyQuery模块的安装使用攻略
Apr 24 #Python
Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
Apr 23 #Python
Python 中的 else详解
Apr 23 #Python
Python 探针的实现原理
Apr 23 #Python
You might like
php中使用Akismet防止垃圾评论的代码
2011/06/10 PHP
PHPUnit安装及使用示例
2014/10/29 PHP
PHP中if和or运行效率对比
2014/12/12 PHP
PHP并发查询MySQL的实例代码
2017/08/09 PHP
slice函数的用法 之不错的应用
2006/12/29 Javascript
javascript EXCEL 操作类代码
2009/07/30 Javascript
jquery 扑捉回车键事件代码
2014/04/24 Javascript
javascript实现删除前弹出确认框
2015/06/04 Javascript
JavaScript蒙板(model)功能的简单实现代码
2016/08/04 Javascript
再谈Javascript中的异步以及如何异步
2016/08/19 Javascript
jquery根据td给相同tr下其他td赋值的实现方法
2016/10/05 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
2016/12/07 Javascript
详解JSON Web Token 入门教程
2018/07/30 Javascript
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
Vue 技巧之控制父类的 slot
2020/02/24 Javascript
[51:10]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python和C语言混合编程实例
2014/06/04 Python
Python探索之pLSA实现代码
2017/10/25 Python
pycharm+django创建一个搜索网页实例代码
2018/01/24 Python
Python cookbook(数据结构与算法)字典相关计算问题示例
2018/02/18 Python
python绘制漏斗图步骤详解
2019/03/04 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
python实现word文档批量转成自定义格式的excel文档的思路及实例代码
2020/02/21 Python
详解pandas中iloc, loc和ix的区别和联系
2020/03/09 Python
python针对Oracle常见查询操作实例分析
2020/04/30 Python
Cinque网上商店:德国服装品牌
2019/03/17 全球购物
法国房车租赁网站:Yescapa
2019/08/26 全球购物
德国拖鞋网站:German Slippers
2019/11/08 全球购物
外贸业务员求职信范文
2013/12/12 职场文书
三项教育活动实施方案
2014/03/30 职场文书
2015年中职班主任工作总结
2015/05/25 职场文书
关于法制教育的宣传语
2015/07/13 职场文书
Go遍历struct,map,slice的实现
2021/06/13 Golang
MySQL的Query Cache图文详解
2021/07/01 MySQL
Python中re模块的元字符使用小结
2022/04/07 Python
Android 中的类文件和类加载器详情
2022/06/05 Java/Android