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 代码性能优化技巧分享
Aug 07 Python
python3实现短网址和数字相互转换的方法
Apr 28 Python
redis之django-redis的简单缓存使用
Jun 07 Python
python实现傅里叶级数展开的实现
Jul 21 Python
python修改txt文件中的某一项方法
Dec 29 Python
详解python中的hashlib模块的使用
Apr 22 Python
关于python中密码加盐的学习体会小结
Jul 15 Python
零基础学python应该从哪里入手
Aug 11 Python
Python描述数据结构学习之哈夫曼树篇
Sep 07 Python
详解numpy.ndarray.reshape()函数的参数问题
Oct 13 Python
pandas实现导出数据的四种方式
Dec 13 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
Dec 16 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
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
2014/07/18 PHP
php连接oracle数据库的核心步骤
2016/05/26 PHP
PHP7变量处理机制修改
2021/03/09 PHP
html读出文本文件内容
2007/01/22 Javascript
纯CSS打造的导航菜单(附jquery版)
2010/08/07 Javascript
JavaScript中两个感叹号的作用说明
2011/12/28 Javascript
jquery实现表格奇数偶数行不同样式(有图为证及实现代码)
2013/01/23 Javascript
js中数组(Array)的排序(sort)注意事项说明
2014/01/24 Javascript
jQuery实现商品活动倒计时
2015/10/16 Javascript
Sort()函数的多种用法
2016/03/20 Javascript
JS实现的跨浏览器解析XML文件实例
2016/06/21 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016/08/01 Javascript
浅谈vue实现数据监听的函数 Object.defineProperty
2017/06/08 Javascript
vue高德地图之玩转周边
2017/06/16 Javascript
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
详解Angular调试技巧之报错404(not found)
2018/01/31 Javascript
vue移动端项目缓存问题实践记录
2018/10/29 Javascript
原生js添加一个或多个类名的方法分析
2019/07/30 Javascript
Vue可自定义tab组件用法实例
2019/10/24 Javascript
一起来了解一下JavaScript的预编译(小结)
2021/03/01 Javascript
总结Python编程中三条常用的技巧
2015/05/11 Python
Python基础之函数基本用法与进阶详解
2020/01/02 Python
Python如何telnet到网络设备
2021/02/18 Python
CSS3解决移动页面上点击链接触发色块的问题
2016/06/03 HTML / CSS
马来西亚演唱会订票网站:StubHub马来西亚
2018/10/18 全球购物
全球性的在线婚纱礼服工厂:27dress.com
2019/03/21 全球购物
德国排名第一的主题公园门票网站:Attraction Tickets Direct
2019/09/09 全球购物
初中化学教学反思
2014/01/23 职场文书
医务人员自我评价
2014/01/26 职场文书
企业宣传标语
2014/06/09 职场文书
反腐倡廉标语
2014/06/24 职场文书
2014年企业党建工作总结
2014/12/18 职场文书
离职感谢信
2015/01/21 职场文书
和谐拯救危机观后感
2015/06/15 职场文书
付款证明格式范文
2015/06/19 职场文书
《包身工》教学反思
2016/02/23 职场文书