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 ldap实现登录实例代码
Sep 30 Python
Python模块文件结构代码详解
Feb 03 Python
tensorflow 打印内存中的变量方法
Jul 30 Python
python实现汉诺塔算法
Mar 01 Python
详解Python 调用C# dll库最简方法
Jun 20 Python
Python爬虫实现“盗取”微信好友信息的方法分析
Sep 16 Python
Python3 assert断言实现原理解析
Mar 02 Python
Python多线程thread及模块使用实例
Apr 28 Python
Pyecharts地图显示不完成问题解决方案
May 11 Python
python numpy实现rolling滚动案例
Jun 08 Python
基于Python爬取51cto博客页面信息过程解析
Aug 25 Python
pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code的问题
Dec 04 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学习之字符串比较和查找
2011/04/17 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
2013/06/21 PHP
php过滤所有的空白字符(空格、全角空格、换行等)
2015/10/27 PHP
JavaScript 动态创建VML的方法
2009/10/14 Javascript
jquery 图片上传按比例预览插件集合
2011/05/28 Javascript
让人印象深刻的10个jQuery手风琴效果应用
2012/05/08 Javascript
基于jQuery的判断iPad、iPhone、Android是横屏还是竖屏的代码
2014/05/11 Javascript
javascript浏览器窗口之间传递数据的方法
2015/01/20 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
2015/11/10 Javascript
web前端开发upload上传头像js示例代码
2016/10/22 Javascript
JavaScript中${pageContext.request.contextPath}取值问题及解决方案
2016/12/08 Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
2017/01/04 Javascript
简单实现js悬浮导航效果
2017/02/05 Javascript
jQuery实现级联下拉框实战(5)
2017/02/08 Javascript
深入理解vue Render函数
2017/07/19 Javascript
详解升级react-router 4 踩坑指南
2017/08/14 Javascript
详解vue.js之绑定class和style的示例代码
2017/08/24 Javascript
浅谈vue中使用图片懒加载vue-lazyload插件详细指南
2017/10/23 Javascript
js前端面试之同步与异步问题详解
2019/04/03 Javascript
vue中利用Promise封装jsonp并调取数据
2019/06/18 Javascript
如何手写一个简易的 Vuex
2020/10/10 Javascript
[01:23]2014DOTA2国际邀请赛 球迷无处不在Ti现场世界杯受关注
2014/07/10 DOTA
初学Python函数的笔记整理
2015/04/07 Python
Python如何实现MySQL实例初始化详解
2017/11/06 Python
通过python将大量文件按修改时间分类的方法
2018/10/17 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
2019/08/20 Python
Python如何存储数据到json文件
2020/03/09 Python
Pytorch 使用不同版本的cuda的方法步骤
2020/04/02 Python
CSS3 Columns分列式布局方法简介
2014/05/03 HTML / CSS
HTML5 History API 实现无刷新跳转
2016/01/11 HTML / CSS
澳大利亚领先的在线葡萄酒零售商:Get Wines Direct
2018/03/27 全球购物
教师求职推荐信范文
2013/11/20 职场文书
莫言诺贝尔获奖演讲稿
2014/05/21 职场文书
幼儿园校园小喇叭广播稿
2014/10/17 职场文书
如何利用js在两个html窗口间通信
2021/04/27 Javascript
mysql数据库隔离级别详解
2022/06/16 MySQL