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之大话题小函数(2)
Oct 10 Python
Python中列表、字典、元组、集合数据结构整理
Nov 20 Python
详解用python实现简单的遗传算法
Jan 02 Python
Python使用matplotlib实现绘制自定义图形功能示例
Jan 18 Python
python中数组和矩阵乘法及使用总结(推荐)
May 18 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
Jul 09 Python
详解Python Qt的窗体开发的基本操作
Jul 14 Python
Python中使用gflags实例及原理解析
Dec 13 Python
Python生成词云的实现代码
Jan 14 Python
Python如何批量获取文件夹的大小并保存
Mar 31 Python
Python新手如何理解循环加载模块
May 29 Python
Python利用pip安装tar.gz格式的离线资源包
Sep 14 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
ThinkPHP CURD方法之table方法详解
2014/06/18 PHP
图解找出PHP配置文件php.ini的路径的方法
2014/08/20 PHP
Smarty模板引擎缓存机制详解
2016/05/23 PHP
理解 JavaScript 预解析
2009/10/25 Javascript
javascript面向对象编程(一) 实例代码
2010/06/25 Javascript
Js如何判断客户端是PC还是手持设备简单分析
2012/11/22 Javascript
Javascript 中 null、NaN和undefined的区别总结
2013/04/10 Javascript
jquery使用append(content)方法注意事项分享
2014/01/06 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
2014/07/29 Javascript
jquery实现的缩略图预览滑块实例
2015/06/25 Javascript
JavaScript判断数组是否包含指定元素的方法
2015/07/01 Javascript
JavaScript转换与解析JSON方法实例详解
2015/11/24 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
2016/05/19 Javascript
jquery实现文本框的禁用和启用
2016/12/07 Javascript
解决浏览器会自动填充密码的问题
2017/04/28 Javascript
JavaScript简单实现合并两个Json对象的方法示例
2017/10/16 Javascript
Vue.js实现分页查询功能
2020/11/15 Javascript
JavaScript 数组去重并统计重复元素出现的次数实例
2017/12/14 Javascript
JS中比Switch...Case更优雅的多条件判断写法
2019/09/05 Javascript
vue Cli 环境删除与重装教程 - 版本文档
2020/09/11 Javascript
[01:04:49]KG vs LGD 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python+mysql实现学生信息查询系统
2019/02/21 Python
Python使用指定端口进行http请求的例子
2019/07/25 Python
python多进程间通信代码实例
2019/09/30 Python
夏威夷航空官网:Hawaiian Airlines
2016/09/11 全球购物
存储过程和sql语句的优缺点
2014/07/02 面试题
酒店总经理欢迎词
2014/01/08 职场文书
银行介绍信范文
2014/01/10 职场文书
幼儿园中秋节活动方案
2014/02/06 职场文书
小班重阳节活动方案
2014/02/08 职场文书
借款协议书范本
2014/04/22 职场文书
2015年小学总务工作总结
2015/07/21 职场文书
幼儿教师继续教育培训心得体会
2016/01/19 职场文书
初二数学教学反思
2016/02/17 职场文书
JS新手入门数组处理的实用方法汇总
2021/04/07 Javascript