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服务器与android客户端socket通信实例
Nov 12 Python
python实现查询苹果手机维修进度
Mar 16 Python
Python3访问并下载网页内容的方法
Jul 28 Python
使用pandas的DataFrame的plot方法绘制图像的实例
May 24 Python
Python设计模式之代理模式实例详解
Jan 19 Python
Python神奇的内置函数locals的实例讲解
Feb 22 Python
python 反编译exe文件为py文件的实例代码
Jun 27 Python
在django中图片上传的格式校验及大小方法
Jul 28 Python
python实现邮件发送功能
Aug 10 Python
解决Numpy中sum函数求和结果维度的问题
Dec 06 Python
python实现数学模型(插值、拟合和微分方程)
Nov 13 Python
用python制作个视频下载器
Feb 01 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/06/21 PHP
Thinkphp实现短信验证注册功能
2016/10/18 PHP
js变量作用域及可访问性的探讨
2006/11/23 Javascript
jQuery 获取URL参数的插件
2010/03/04 Javascript
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
html中table数据排序的js代码
2011/08/09 Javascript
javascript 手动给表增加数据的小例子
2013/07/10 Javascript
基于javascript实现页面加载loading效果
2020/09/15 Javascript
输入框点击时边框变色效果的实现方法
2016/12/26 Javascript
select下拉框插件jquery.editable-select详解
2017/01/22 Javascript
jQuery EasyUI tree增加搜索功能的实现方法
2017/04/27 jQuery
js+html5生成自动排列对话框实例
2017/10/09 Javascript
JavaScript函数节流和函数去抖知识点学习
2018/07/31 Javascript
谈谈JavaScript中super(props)的重要性
2019/02/12 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
vue 解决uglifyjs-webpack-plugin打包出现报错的问题
2020/08/04 Javascript
Python正则表达式匹配ip地址实例
2014/10/09 Python
python中dir函数用法分析
2015/04/17 Python
CentOS中使用virtualenv搭建python3环境
2015/06/08 Python
python selenium执行所有测试用例并生成报告的方法
2019/02/13 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
python实现在一个画布上画多个子图
2020/01/19 Python
jupyter notebook 添加kernel permission denied的操作
2020/04/21 Python
Python Selenium操作Cookie的实例方法
2021/02/28 Python
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
video.js支持m3u8格式直播的实现示例
2020/05/20 HTML / CSS
碧欧泉法国官网:Biotherm法国
2019/10/23 全球购物
牵手50香港:专为黄金岁月的单身人士而设的交友网站
2020/08/14 全球购物
给老婆的婚前保证书
2014/02/01 职场文书
运动会致辞稿50字
2014/02/04 职场文书
四风问题查摆材料
2014/08/25 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
2021/06/13 Python
浅谈Python数学建模之整数规划
2021/06/23 Python
ROS系统将python包编译为可执行文件的简单步骤
2021/07/25 Python