整理Python最基本的操作字典的方法


Posted in Python onApril 24, 2015

Python 中的字典是Python中一个键值映射的数据结构,下面介绍一下如何优雅的操作字典.
1.1 创建字典

Python有两种方法可以创建字典,第一种是使用花括号,另一种是使用内建 函数dict

>>> info = {}
>>> info = dict()

1.2 初始化字典

Python可以在创建字典的时候初始化字典

>>> info = {"name" : 'cold'}
>>> info = dict(name = 'cold')    # 更优雅

很明显第二种方法更加的优雅和减少一些特殊字符的输入,但是有种情况第二种不能胜任

>>> key = 'name'
>>> info = { key :'cold'} # {'name':'cold'}
>>> info = dict(key = 'cold') # {'key': 'cold'}

明显第二种方法就会引发一个不容易找到的bug

Python字典还有一种初始化方式,就是使用字典的fromkeys方法可以从列表中获取元素作为键并用None或fromkeys方法的第二个参数初始化

>>> info = {}.fromkeys(['name', 'blog'])
>>> info
{'blog': None, 'name': None}
>>> info = dict().fromkeys(['name', 'blog'])
>>> info
{'blog': None, 'name': None}
>>> info = dict().fromkeys(['name', 'blog'], 'linuxzen.com')
>>> info
{'blog': 'linuxzen.com', 'name': 'linuxzen.com'}

1.3 优雅的获取键值

字典可以这样获取到键的值

>>> info = {'name':'cold', 'blog':'linuxzen.com'}
>>> info['name']
'cold'

但是如果获取不存在的键的值就会触发的一个KeyError异常,字典有一个get方法,可以使用字典get方法更加优雅的获取字典

>>> info = dict(name= 'cold', blog='www.linuxzen.com')
>>> info.get('name')
'cold'
>>> info.get('blogname')
None
>>> info.get('blogname', 'linuxzen')
'linuxzen'

我们看到使用get方法获取不存在的键值的时候不会触发异常,同时get方法接收两个参数,当不存在该键的时候就会返回第二个参数的值 我们可以看到使用get更加的优雅
1.4 更新/添加

Python 字典可以使用键作为索引来访问/更新/添加值

>>> info = dict()
>>> info['name'] = 'cold'
>>> info['blog'] = 'linuxzen.com'
>>> info
{'blog': 'linuxzen.com', 'name': 'cold'}
>>> info
{'blog': 'linuxzen.com', 'name': 'cold night'}

同时Python字典的update方法也可以更新和添加字典

>>> info = dict(name='cold', blog='linuxzen.com')
>>> info.update({'name':'cold night', 'blogname':'linuxzen'})
>>> info
{'blog': 'linuxzen.com', 'name': 'cold night', 'blogname': 'linuxzen'}
>>> info.update(name='cold', blog='www.linuxzen.com') # 更优雅
>>> info
{'blog': 'www.linuxzen.com', 'name': 'cold', 'blogname': 'linuxzen'}

Python字典的update方法可以使用一个字典来更新字典,也可以使用参数传递类似dict函数一样的方式更新一个字典,上面代码中哦功能的第二个更加优雅,但是同样和dict函数类似,键是变量时也只取字面值
1.5 字典删除

可以调用Python内置关键字del来删除一个键值

>>> info = dict(name='cold', blog='linuxzen.com')
>>> info
{'blog': 'linuxzen.com', 'name': 'cold'}
>>> del info['name']
>>> info
{'blog': 'linuxzen.com'}

同时也可以使用字典的pop方法来取出一个键值,并删除

>>> info = dict(name='cold', blog='linuxzen.com')
>>> info.pop('name')
'cold'
>>> info
{'blog': 'linuxzen.com'}

1.6 其他操作

获取所有key

>>> info = dict(name='cold', blog='linuxzen.com')
>>> info.keys()
['blog', 'name']

获取key,value并循环

>>> info = dict(name='cold', blog='linuxzen.com')
>>> for key, value in info.items():
...   print key, ':', value
... 
blog : linuxzen.com
name : cold
Python 相关文章推荐
python求pi的方法
Oct 08 Python
Python爬虫文件下载图文教程
Dec 23 Python
python爬取cnvd漏洞库信息的实例
Feb 14 Python
Python判断对象是否相等及eq函数的讲解
Feb 25 Python
Python datetime和unix时间戳之间相互转换的讲解
Apr 01 Python
Python实现的微信支付方式总结【三种方式】
Apr 13 Python
python3中类的继承以及self和super的区别详解
Jun 26 Python
Python实现Mysql数据统计及numpy统计函数
Jul 15 Python
Python selenium的基本使用方法分析
Dec 21 Python
pyinstaller打包找不到文件的问题解决
Apr 15 Python
对python pandas中 inplace 参数的理解
Jun 27 Python
Python Matplotlib绘制等高线图与渐变色扇形图
Apr 14 Python
编写Python脚本使得web页面上的代码高亮显示
Apr 24 #Python
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
Apr 24 #Python
Python3.x中自定义比较函数
Apr 24 #Python
使用Python脚本将绝对url替换为相对url的教程
Apr 24 #Python
Python3.x版本中新的字符串格式化方法
Apr 24 #Python
用Python的Tornado框架结合memcached页面改善博客性能
Apr 24 #Python
使用Python编写一个在Linux下实现截图分享的脚本的教程
Apr 24 #Python
You might like
用libTemplate实现静态网页的生成
2006/10/09 PHP
PHP中函数rand和mt_rand的区别比较
2012/12/26 PHP
深入php define()函数以及defined()函数的用法详解
2013/06/05 PHP
php ctype函数中文翻译和示例
2014/03/21 PHP
PHP+jQuery 注册模块开发详解
2014/10/14 PHP
thinkphp3.2点击刷新生成验证码
2016/02/16 PHP
PHP+redis实现的购物车单例类示例
2019/02/02 PHP
破除网页鼠标右键被禁用的绝招大全
2006/12/27 Javascript
JavaScript 打地鼠游戏代码说明
2010/10/12 Javascript
JS实现距离上次刷新已过多少秒示例
2014/05/23 Javascript
JS+DIV+CSS实现的经典标签切换效果代码
2015/09/14 Javascript
js实现select下拉框菜单
2015/12/08 Javascript
基于javascript实现最简单的选项卡切换效果
2016/05/16 Javascript
javascript中的后退和刷新实现方法
2016/11/10 Javascript
javascript 单例模式详解及简单实例
2017/02/14 Javascript
使用contextMenu插件实现Bootstrap table弹出右键菜单
2017/02/20 Javascript
写给vue新手们的vue渲染页面教程
2017/09/01 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
2019/06/10 jQuery
jquery图片预览插件实现方法详解
2019/07/18 jQuery
JavaScript定时器常见用法实例分析
2019/11/15 Javascript
Python3中多线程编程的队列运作示例
2015/04/16 Python
flask框架视图函数用法示例
2018/07/19 Python
JavaScript中的模拟事件和自定义事件实例分析
2018/07/27 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
2018/11/07 Python
Django集成CAS单点登录的方法示例
2019/06/10 Python
详解如何用TensorFlow训练和识别/分类自定义图片
2019/08/05 Python
python opencv如何实现图片绘制
2020/01/19 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
2020/03/06 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
县优秀教师事迹材料
2014/01/31 职场文书
户外拓展活动方案
2014/02/11 职场文书
我们的节日清明节活动总结
2014/04/30 职场文书
师范学院毕业生求职信
2014/06/24 职场文书
法学专业毕业实习自我鉴定2014
2014/09/27 职场文书
python 算法题——快乐数的多种解法
2021/05/27 Python
用Python爬取英雄联盟的皮肤详细示例
2021/12/06 Python