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 相关文章推荐
Python3.x和Python2.x的区别介绍
Feb 12 Python
Python基本语法经典教程
Mar 11 Python
利用Python画ROC曲线和AUC值计算
Sep 19 Python
python 删除列表里所有空格项的方法总结
Apr 18 Python
python 巧用正则寻找字符串中的特定字符的位置方法
May 02 Python
使用Scrapy爬取动态数据
Oct 21 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
Feb 21 Python
docker-py 用Python调用Docker接口的方法
Aug 30 Python
Python阶乘求和的代码详解
Feb 14 Python
python设置环境变量的作用整理
Feb 17 Python
Selenium启动Chrome时配置选项详解
Mar 18 Python
python能做哪方面的工作
Jun 15 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 错误之引号中使用变量
2009/05/04 PHP
PHP中文分词的简单实现代码分享
2011/07/17 PHP
php curl常见错误:SSL错误、bool(false)
2011/12/28 PHP
Codeigniter操作数据库表的优化写法总结
2014/06/12 PHP
yii实现图片上传及缩略图生成的方法
2014/12/04 PHP
PHP 实现代码复用的一个方法 traits新特性
2015/02/22 PHP
php将一维数组转换为每3个连续值组成的二维数组
2016/05/06 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
2017/07/03 PHP
javascript 另一种图片滚动切换效果思路
2012/04/20 Javascript
JS取文本框中最小值的简单实例
2013/11/29 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
2015/12/03 Javascript
AngularJS入门教程之服务(Service)
2016/07/27 Javascript
vue组件间通信解析
2017/03/01 Javascript
jQuery中.attr()和.data()的区别分析
2017/09/03 jQuery
Vue 框架之动态绑定 css 样式实例分析
2018/11/14 Javascript
Vue分页插件的前后端配置与使用
2019/10/09 Javascript
vue-quill-editor的使用及个性化定制操作
2020/08/04 Javascript
浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑
2020/09/12 Javascript
[01:24:16]2018DOTA2亚洲邀请赛 4.6 全明星赛
2018/04/10 DOTA
[45:16]完美世界DOTA2联赛循环赛 IO vs FTD BO2第二场 11.05
2020/11/06 DOTA
Pyinstaller将py打包成exe的实例
2018/03/31 Python
wxPython的安装与使用教程
2018/08/31 Python
Python中时间datetime的处理与转换用法总结
2019/02/18 Python
python中的global关键字的使用方法
2019/08/20 Python
python通过链接抓取网站详解
2019/11/20 Python
利用python查看数组中的所有元素是否相同
2021/01/08 Python
Spartoo美国:欧洲排名第一的在线时装零售商
2019/12/12 全球购物
Envie de Fraise意大利:法国网上推出的孕妇装品牌
2020/10/18 全球购物
护理专业毕业生自我鉴定
2013/10/08 职场文书
终端业务员岗位职责
2013/11/27 职场文书
寄语十八大感言
2014/02/07 职场文书
技术合作协议书范本
2014/04/18 职场文书
2014年廉洁自律承诺书
2014/05/26 职场文书
民间个人借款协议书
2014/09/30 职场文书
2014年安全保卫工作总结
2014/11/13 职场文书
导游词之宿迁乾隆行宫
2019/10/15 职场文书