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中的变量及其命名和打印
Mar 11 Python
python 环境变量和import模块导入方法(详解)
Jul 11 Python
pycharm远程调试openstack的图文教程
Nov 21 Python
flask框架视图函数用法示例
Jul 19 Python
TensorFlow Session使用的两种方法小结
Jul 30 Python
Python http接口自动化测试框架实现方法示例
Dec 06 Python
Python创建或生成列表的操作方法
Jun 19 Python
解决Tensorflow 内存泄露问题
Feb 05 Python
keras中模型训练class_weight,sample_weight区别说明
May 23 Python
Python虚拟环境的创建和使用详解
Sep 07 Python
Python自动化xpath实现自动抢票抢货
Sep 19 Python
Pycharm中如何关掉python console
Oct 27 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中利用XML技术构造远程服务(上)
2006/10/09 PHP
php下封装较好的数字分页方法
2010/11/23 PHP
PHP数组无限分级数据的层级化处理代码
2012/12/29 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
php+html5使用FormData对象提交表单及上传图片的方法
2015/02/11 PHP
php微信公众号开发之现金红包
2018/04/16 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
2018/09/26 PHP
用Greasemonkey 脚本收藏网站会员信息到本地
2009/10/26 Javascript
jquery动画3.创建一个带遮罩效果的图片走廊
2012/08/24 Javascript
基于jquery实现控制经纬度显示地图与卫星
2013/05/20 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
javascript实现删除前弹出确认框
2015/06/04 Javascript
jQuery Html控件基本操作(日常收集整理)
2016/03/11 Javascript
JS实现屏蔽网页右键复制及ctrl+c复制的方法【2种方法】
2016/09/04 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
jquery easyui如何实现格式化列
2017/07/30 jQuery
express express-session的使用小结
2018/12/12 Javascript
python使用cookie库操保存cookie详解
2014/03/03 Python
python从入门到精通(DAY 1)
2015/12/20 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
Python编程中类与类的关系详解
2019/08/08 Python
python、Matlab求定积分的实现
2019/11/20 Python
pandas中的数据去重处理的实现方法
2020/02/10 Python
Python如何在DataFrame增加数值
2020/02/14 Python
Keras loss函数剖析
2020/07/06 Python
Python批量获取并保存手机号归属地和运营商的示例
2020/10/09 Python
python-图片流传输的思路及示例(url转换二维码)
2020/12/21 Python
美国知名的家庭连锁百货商店:Boscov’s
2017/07/27 全球购物
澳大利亚二手奢侈品网站:Modsie
2019/09/23 全球购物
烟台的海导游词
2015/02/02 职场文书
安全教育培训心得体会
2016/01/15 职场文书
慰问信(范文3篇)
2019/10/23 职场文书
python 爬取天气网卫星图片
2021/06/07 Python
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
2021/11/11 HTML / CSS
Redis实现一个账号只能登录一个设备
2022/04/19 Redis
Mysql表数据比较大情况下修改添加字段的方法实例
2022/06/28 MySQL