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入门篇之面向对象
Oct 20 Python
回调函数的意义以及python实现实例
Jun 20 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
May 18 Python
如何安装并使用conda指令管理python环境
Jul 10 Python
修改 CentOS 6.x 上默认Python的方法
Sep 06 Python
用python实现英文字母和相应序数转换的方法
Sep 18 Python
python实现提取COCO,VOC数据集中特定的类
Mar 10 Python
python使用opencv resize图像不进行插值的操作
Jul 05 Python
python中pyplot基础图标函数整理
Nov 10 Python
Python偏函数实现原理及应用
Nov 20 Python
python的列表生成式,生成器和generator对象你了解吗
Mar 16 Python
Pygame游戏开发之太空射击实战敌人精灵篇
Aug 05 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
VIM中设置php自动缩进为4个空格的方法详解
2013/06/14 PHP
浅析PHP substr,mb_substr以及mb_strcut的区别和用法
2013/06/21 PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
2014/11/18 PHP
php启用sphinx全文搜索的实现方法
2014/12/24 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
2019/04/27 PHP
javascript显示选择目录对话框的代码
2008/11/10 Javascript
Javascript模块化编程(一)模块的写法最佳实践
2013/01/17 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
2014/01/15 Javascript
ListBox实现上移,下移,左移,右移的简单实例
2014/02/13 Javascript
javascript实现信息增删改查的方法
2015/07/25 Javascript
javascript实现瀑布流加载图片原理
2016/02/02 Javascript
jquery实现上传文件大小类型的验证例子(推荐)
2016/06/25 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
微信小程序 动态绑定事件并实现事件修改样式
2017/04/13 Javascript
Electron中实现大文件上传和断点续传功能
2018/10/28 Javascript
vue 实现在同一界面实现组件的动态添加和删除功能
2020/06/16 Javascript
JavaScript语法约定和程序调试原理解析
2020/11/03 Javascript
Python兔子毒药问题实例分析
2015/03/05 Python
Python正则表达式使用经典实例
2016/06/21 Python
对Python _取log的几种方式小结
2019/07/25 Python
最小二乘法及其python实现详解
2020/02/24 Python
2021年的Python 时间轴和即将推出的功能详解
2020/07/27 Python
Python配置pip国内镜像源的实现
2020/08/20 Python
台湾乐天市场:日本No.1的网路购物网站
2017/03/22 全球购物
泰国健康和美容服务预订网站:GoWabi
2019/06/03 全球购物
亚马逊加拿大网站:Amazon.ca
2020/01/06 全球购物
数控技术应用个人求职信范文
2014/02/03 职场文书
工程材料采购方案
2014/05/18 职场文书
安全资料员岗位职责范本
2014/06/28 职场文书
2015毕业生自我评价范文
2015/03/02 职场文书
2015毕业生实习期工作总结
2015/04/09 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书
python 下载文件的几种方式分享
2021/04/07 Python
正确的理解和使用Django信号(Signals)
2021/04/14 Python
Mysql 文件配置解析介绍
2022/05/06 MySQL