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批量读取txt文件为DataFrame的方法
Apr 03 Python
pandas修改DataFrame列名的方法
Apr 08 Python
Python paramiko模块的使用示例
Apr 11 Python
pandas 小数位数 精度的处理方法
Jun 09 Python
Python GUI Tkinter简单实现个性签名设计
Jun 19 Python
12个步骤教你理解Python装饰器
Jul 01 Python
使用python打印十行杨辉三角过程详解
Jul 10 Python
Python实现查找数据库最接近的数据
Jun 08 Python
如何使用python记录室友的抖音在线时间
Jun 29 Python
使用Python绘制台风轨迹图的示例代码
Sep 21 Python
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
May 27 Python
Python机器学习之基于Pytorch实现猫狗分类
Jun 08 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使用str_replace实现输入框回车替换br的方法
2014/11/24 PHP
php使用curl出现Expect:100-continue解决方法
2015/03/03 PHP
Mac下关于PHP环境和扩展的安装详解
2019/10/17 PHP
javascript的事件描述
2006/09/08 Javascript
发现的以前不知道的函数
2006/09/19 Javascript
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
在JavaScript的AngularJS库中进行单元测试的方法
2015/06/23 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
2016/05/04 Javascript
JSONP跨域请求
2017/03/02 Javascript
Vue.js实现分页查询功能
2020/11/15 Javascript
在Vue项目中引入JQuery-ui插件的讲解
2019/01/27 jQuery
浅谈vue限制文本框输入数字的正确姿势
2019/09/02 Javascript
nodejs中使用archive压缩文件的实现代码
2019/11/26 NodeJs
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
从零学Python之hello world
2014/05/21 Python
Python制作数据导入导出工具
2015/07/31 Python
Python之父谈Python的未来形式
2016/07/01 Python
Python中列表和元组的使用方法和区别详解
2020/12/30 Python
老生常谈python函数参数的区别(必看篇)
2017/05/29 Python
Python中easy_install 和 pip 的安装及使用
2017/06/05 Python
python集合比较(交集,并集,差集)方法详解
2018/09/13 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
2019/09/03 Python
Python解释器以及PyCharm的安装教程图文详解
2020/02/26 Python
python2.7使用scapy发送syn实例
2020/05/05 Python
css3 伪元素和伪类选择器详解
2014/09/04 HTML / CSS
CSS3 input框的实现代码类似Google登录的动画效果
2020/08/04 HTML / CSS
用C#语言写出与SQLSERVER访问时的具体过程
2013/04/16 面试题
餐饮主管岗位职责
2013/12/10 职场文书
公司承诺书怎么写
2014/05/24 职场文书
老龄工作先进事迹
2014/08/15 职场文书
应届毕业生求职信范文
2015/03/19 职场文书
2015婚礼主持词开场白
2015/05/28 职场文书
老干部座谈会主持词
2015/07/03 职场文书
会计手工模拟做账心得体会
2016/01/22 职场文书
MySQL中varchar和char类型的区别
2021/11/17 MySQL