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使用os模块的os.walk遍历文件夹示例
Jan 27 Python
Django在Win7下的安装及创建项目hello word简明教程
Jul 14 Python
Python使用functools模块中的partial函数生成偏函数
Jul 02 Python
Python 获取当前所在目录的方法详解
Aug 02 Python
python爬虫使用cookie登录详解
Dec 27 Python
详解Python3序列赋值、序列解包
May 14 Python
关于python中密码加盐的学习体会小结
Jul 15 Python
关于python中plt.hist参数的使用详解
Nov 28 Python
Python模块_PyLibTiff读取tif文件的实例
Jan 13 Python
python爬虫要用到的库总结
Jul 28 Python
python 批量下载bilibili视频的gui程序
Nov 20 Python
解决IDEA翻译插件Translation报错更新TTK失败不能使用
Apr 24 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 array的学习笔记
2012/05/10 PHP
php的一个简单加密解密代码
2014/01/14 PHP
PHP实现Javascript中的escape及unescape函数代码分享
2015/02/10 PHP
javascript showModalDialog模态对话框使用说明
2009/12/31 Javascript
jquery数组之存放checkbox全选值示例代码
2013/12/20 Javascript
JavaScript转换二进制编码为ASCII码的方法
2015/04/16 Javascript
浅谈javascript属性onresize
2015/04/20 Javascript
jQuery简单实现日历的方法
2015/05/04 Javascript
JavaScript的六种继承方式(推荐)
2017/06/26 Javascript
使用Dropzone.js上传的示例代码
2017/10/10 Javascript
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
详解webpack中的hash、chunkhash、contenthash区别
2018/01/05 Javascript
swiper 解决动态加载数据滑动失效的问题
2018/02/26 Javascript
解决node修改后需频繁手动重启的问题
2018/05/13 Javascript
详解如何用webpack4从零开始构建react开发环境
2019/01/27 Javascript
vue中的mvvm模式讲解
2019/01/31 Javascript
详解vue 组件的实现原理
2020/11/12 Javascript
JavaScript实现缓动动画
2020/11/25 Javascript
Python的加密模块md5、sha、crypt使用实例
2014/09/28 Python
python命令行工具Click快速掌握
2019/07/04 Python
python多线程共享变量的使用和效率方法
2019/07/16 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
python构造IP报文实例
2020/05/05 Python
python使用openpyxl操作excel的方法步骤
2020/05/28 Python
Python字典fromkeys()方法使用代码实例
2020/07/20 Python
使用Html5 Stream开发实时监控系统
2020/06/02 HTML / CSS
德国购买健身器材:AsVIVA
2017/08/09 全球购物
小学生红领巾广播稿
2014/01/21 职场文书
小学生家长评语集锦
2014/01/30 职场文书
爱岗敬业事迹材料
2014/12/24 职场文书
玄武湖导游词
2015/02/05 职场文书
前台岗位职责范本
2015/04/16 职场文书
2015年公司工作总结
2015/04/25 职场文书
2015财务年度工作总结范文
2015/05/04 职场文书
小学一年级数学教学反思
2016/02/16 职场文书
Nginx使用Lua模块实现WAF的原理解析
2021/09/04 Servers