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进阶教程之模块(module)介绍
Aug 30 Python
Python使用剪切板的方法
Jun 06 Python
python 字符串和整数的转换方法
Jun 25 Python
python交易记录整合交易类详解
Jul 03 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
Aug 13 Python
在Pytorch中计算自己模型的FLOPs方式
Dec 30 Python
Python字典添加,删除,查询等相关操作方法详解
Feb 07 Python
Python 日期与时间转换的方法
Aug 01 Python
python中append函数用法讲解
Dec 11 Python
selenium与xpath之获取指定位置的元素的实现
Jan 26 Python
python中sqllite插入numpy数组到数据库的实现方法
Jun 21 Python
利用Python判断整数是否是回文数的3种方法总结
Jul 07 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
论建造顺序的重要性
2020/03/04 星际争霸
锁定年轻人的双倍活力 星巴克推出星倍醇即饮浓咖啡
2021/03/03 咖啡文化
Smarty中的注释和截断功能介绍
2015/04/09 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
2017/08/04 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
jqPlot jquery的页面图表绘制工具
2009/07/25 Javascript
javascript下数值型比较难点说明
2010/06/07 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(四)用地图块拼成大地图
2013/01/23 Javascript
jQuery选择器全面总结
2014/01/06 Javascript
JS实现动态给图片添加边框的方法
2015/04/01 Javascript
js登录滑动验证的实现(不滑动无法登陆)
2018/01/03 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
2018/08/22 Javascript
对angularJs中$sce服务安全显示html文本的实例
2018/09/30 Javascript
解决node-sass偶尔安装失败的方法小结
2018/12/05 Javascript
JavaScript计算正方形面积
2019/11/26 Javascript
vue简单封装axios插件和接口的统一管理操作示例
2020/02/02 Javascript
用jQuery实现抽奖程序
2020/04/12 jQuery
[01:01:52]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第二场 1月9日
2021/03/11 DOTA
新手该如何学python怎么学好python?
2008/10/07 Python
Python常用内置函数总结
2015/02/08 Python
python函数形参用法实例分析
2015/08/04 Python
解析Python编程中的包结构
2015/10/25 Python
python调用百度地图WEB服务API获取地点对应坐标值
2019/01/16 Python
python关于调用函数外的变量实例
2019/12/26 Python
Python3中FuzzyWuzzy库实例用法
2020/11/18 Python
使用postMessage让 iframe自适应高度的方法示例
2019/10/08 HTML / CSS
Agoda香港:全球特价酒店预订
2017/05/07 全球购物
化石印度尼西亚在线商店:Fossil Indonesia
2019/03/11 全球购物
什么是封装
2013/03/26 面试题
工会主席事迹材料
2014/06/03 职场文书
党员个人剖析材料
2014/09/30 职场文书
2014年保安个人工作总结
2014/11/13 职场文书
2015年暑期实践报告范文
2015/07/13 职场文书
vue使用v-model进行跨组件绑定的基本实现方法
2021/04/28 Vue.js
MyBatis-Plus 批量插入数据的操作方法
2021/09/25 Java/Android
详解Spring Security中的HttpBasic登录验证模式
2022/03/17 Java/Android