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操作CouchDB数据库简单示例
Mar 10 Python
剖析Django中模版标签的解析与参数传递
Jul 21 Python
pandas全表查询定位某个值所在行列的方法
Apr 12 Python
深入分析python数据挖掘 Json结构分析
Apr 21 Python
Python测试网络连通性示例【基于ping】
Aug 03 Python
Python3.6.x中内置函数总结及讲解
Feb 22 Python
Tensorflow:转置函数 transpose的使用详解
Feb 11 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
May 26 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
Jun 02 Python
Python在字符串中处理html和xml的方法
Jul 31 Python
Python OpenCV快速入门教程
Apr 17 Python
python实现自定义日志的具体方法
May 28 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
56.com视频采集接口程序(PHP)
2007/09/22 PHP
php使用strtotime和date函数判断日期是否有效代码分享
2013/12/25 PHP
php中隐形字符65279(utf-8的BOM头)问题
2014/08/16 PHP
Linux下PHP连接Oracle数据库
2014/08/20 PHP
Laravel框架学习笔记(二)项目实战之模型(Models)
2014/10/15 PHP
隐性调用php程序的方法
2015/06/13 PHP
PHPExcel在linux环境下导出报500错误的解决方法
2017/01/26 PHP
js资料prototype 属性
2007/03/13 Javascript
YUI 读码日记之 YAHOO.util.Dom - Part.1
2008/03/22 Javascript
JQuery最佳实践之精妙的自定义事件
2010/08/11 Javascript
Javascript 实现的数独解题算法网页实例
2013/10/15 Javascript
一道关于JavaScript变量作用域的面试题
2016/03/08 Javascript
JS中dom0级事件和dom2级事件的区别介绍
2016/05/05 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
使用veloticy-ui生成文字动画效果
2018/02/08 Javascript
小程序实现锚点滑动效果
2019/09/23 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
python聊天程序实例代码分享
2013/11/18 Python
浅谈Python的Django框架中的缓存控制
2015/07/24 Python
详解python开发环境搭建
2016/12/16 Python
Python操作Redis之设置key的过期时间实例代码
2018/01/25 Python
python机器人行走步数问题的解决
2018/01/29 Python
Python正则表达式和re库知识点总结
2019/02/11 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
Python爬取微信小程序通用方法代码实例详解
2020/09/29 Python
Python通过fnmatch模块实现文件名匹配
2020/09/30 Python
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
2013/06/05 面试题
英语专业毕业生求职信
2014/05/24 职场文书
小学语文教师研修日志
2015/11/13 职场文书
python常见的占位符总结及用法
2021/07/02 Python
mongodb的安装和开机自启动详细讲解
2021/08/02 MongoDB
SpringBoot整合阿里云视频点播的过程详解
2021/12/06 Java/Android
win10滚动条自动往上跑怎么办?win10滚动条自动往上跑的解决方法
2022/08/05 数码科技
Fluentd搭建日志收集服务
2022/09/23 Servers