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中的__new__()方法的使用
Apr 09 Python
Python3使用requests登录人人影视网站的方法
May 11 Python
用Python写一个无界面的2048小游戏
May 24 Python
scrapy爬虫实例分享
Dec 28 Python
对python-3-print重定向输出的几种方法总结
May 11 Python
python 执行shell命令并将结果保存的实例
May 11 Python
Python eval的常见错误封装及利用原理详解
Mar 26 Python
numpy 返回函数的上三角矩阵实例
Nov 25 Python
Python基于callable函数检测对象是否可被调用
Oct 16 Python
Django websocket原理及功能实现代码
Nov 14 Python
全网最全python库selenium自动化使用详细教程
Jan 12 Python
Django使用echarts进行可视化展示的实践
Jun 10 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
叶罗丽:为什么大家对颜冰这对CP非常关心,却对金茉两人十分冷漠
2020/03/17 国漫
Yii PHP Framework实用入门教程(详细介绍)
2013/06/18 PHP
php获取文章上一页与下一页的方法
2014/12/01 PHP
Yii框架ACF(accessController)简单权限控制操作示例
2019/04/26 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
2019/06/22 PHP
laravel多条件查询方法(and,or嵌套查询)
2019/10/09 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
超强的IE背景图片闪烁(抖动)的解决办法
2007/09/09 Javascript
Mootools 1.2教程 Fx.Morph、Fx选项和Fx事件
2009/09/15 Javascript
2014年最火的Node.JS后端框架推荐
2014/10/27 Javascript
javascript几个易错点记录
2014/11/26 Javascript
jquery trigger函数执行两次的解决方法
2016/02/29 Javascript
javascript 解决浏览器不支持的问题
2016/09/24 Javascript
简单实现js倒计时功能
2017/02/13 Javascript
jQuery自定义图片上传插件实例代码
2017/04/04 jQuery
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
2017/07/18 Javascript
JS倒计时实例_天时分秒
2017/08/22 Javascript
从vue源码看props的用法
2019/01/09 Javascript
Vue+Express实现登录状态权限验证的示例代码
2019/05/05 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
2020/06/04 Javascript
Python3基础之条件与循环控制实例解析
2014/08/13 Python
Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享
2016/07/04 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
快速解释如何使用pandas的inplace参数的使用
2020/07/23 Python
彻底解决Python包下载慢问题
2020/11/15 Python
css3实现3D文本悬停改变效果的示例代码
2019/01/16 HTML / CSS
Myprotein芬兰官网:欧洲第一运动营养品牌
2019/05/05 全球购物
毕业实习评语
2014/02/10 职场文书
《长城和运河》教学反思
2014/04/14 职场文书
出差报告范文
2014/11/06 职场文书
十七岁的单车观后感
2015/06/12 职场文书
2019年中学生的思想品德评语集锦
2019/12/19 职场文书
励志语录:只有自己足够强大,才能不被别人践踏
2020/01/09 职场文书
nginx内存池源码解析
2021/11/20 Servers
Java 超详细讲解ThreadLocal类的使用
2022/04/07 Java/Android