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 多线程抓取图片效率对比
Feb 27 Python
Python中规范定义命名空间的一些建议
Jun 04 Python
python实现扫描日志关键字的示例
Apr 28 Python
python爬虫爬取微博评论案例详解
Mar 27 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
Jun 21 Python
Django shell调试models输出的SQL语句方法
Aug 29 Python
python连接PostgreSQL数据库的过程详解
Sep 18 Python
3行Python代码实现图像照片抠图和换底色的方法
Oct 10 Python
wxPython实现整点报时
Nov 18 Python
解决阿里云邮件发送不能使用25端口问题
Aug 07 Python
Python基于staticmethod装饰器标示静态方法
Oct 17 Python
关于Python使用turtle库画任意图的问题
Apr 01 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 源代码压缩小工具
2009/12/22 PHP
PHP strip_tags保留多个HTML标签的方法
2016/05/22 PHP
PHP回调函数与匿名函数实例详解
2017/08/16 PHP
js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解
2013/11/05 Javascript
JS控制图片翻转示例代码(兼容firefox,ie,chrome)
2013/12/19 Javascript
jQuery学习笔记之jQuery.fn.init()的参数分析
2014/06/09 Javascript
node.js中使用socket.io制作命名空间
2014/12/15 Javascript
使用struts2+Ajax+jquery验证用户名是否已被注册
2016/03/22 Javascript
js学习总结之dom2级事件基础知识详解
2017/07/27 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
2018/09/04 Javascript
angularJs中ng-model-options设置数据同步的方法
2018/09/30 Javascript
Angularjs实现数组随机排序的方法
2018/10/02 Javascript
vue页面跳转实现页面缓存操作
2020/07/22 Javascript
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
centos系统升级python 2.7.3
2014/07/03 Python
全面了解Nginx, WSGI, Flask之间的关系
2018/01/09 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
2018/08/03 Python
python 分离文件名和路径以及分离文件名和后缀的方法
2018/10/21 Python
python sort、sort_index方法代码实例
2019/03/28 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
2019/10/12 Python
python实现树的深度优先遍历与广度优先遍历详解
2019/10/26 Python
Python实现扫码工具的示例代码
2020/10/09 Python
详解如何用canvas画一个微笑的表情
2019/03/14 HTML / CSS
荷兰优雅女装网上商店:Heine
2016/11/14 全球购物
信息系统专业个人求职信范文
2013/12/07 职场文书
初一生物教学反思
2014/01/18 职场文书
数学国培研修感言
2014/02/13 职场文书
《小松树和大松树》教学反思
2014/02/20 职场文书
员工生日会策划方案
2014/06/14 职场文书
爱的奉献演讲稿
2014/09/10 职场文书
群众路线党员个人整改措施
2014/10/27 职场文书
小学优秀学生评语
2014/12/29 职场文书
铁人观后感
2015/06/16 职场文书
React + Threejs + Swiper 实现全景图效果的完整代码
2021/06/28 Javascript
带你了解Java中的ForkJoin
2022/04/28 Java/Android
Java 死锁解决方案
2022/05/11 Java/Android