Python基础之字典常见操作经典实例详解


Posted in Python onFebruary 26, 2020

本文实例讲述了Python基础之字典常见操作。分享给大家供大家参考,具体如下:

Python字典

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

创建字典

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

>>> info = {}
>>> info = dict()
初始化字典

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'], 'luckycyong.com')
>>> info
{'blog': 'luckycyong.com', 'name': 'luckycyong.com'}
优雅的获取键值

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

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

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

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

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

更新/添加

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

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

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

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

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

字典删除

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

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

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

>>> info = dict(name='cold', blog='luckycyong.com')
>>> info.pop('name')
'cold'
>>> info
{'blog': 'luckycyong.com'}
其他操作

获取所有key

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

获取key,value并循环

>>> info = dict(name='cold', blog='luckycyong.com')
>>> for key, value in info.items():
...   print key, ':', value
... 
blog : luckycyong.com
name : cold

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python的Flask框架中@app.route的用法教程
Mar 31 Python
从Python的源码浅要剖析Python的内存管理
Apr 16 Python
深入解析Python中的__builtins__内建对象
Jun 21 Python
Python黑帽编程 3.4 跨越VLAN详解
Sep 28 Python
python数据类型_字符串常用操作(详解)
May 30 Python
django站点管理详解
Dec 12 Python
用tensorflow实现弹性网络回归算法
Jan 09 Python
Python常见数据结构之栈与队列用法示例
Jan 14 Python
Django 重写用户模型的实现
Jul 29 Python
python实现KNN分类算法
Oct 16 Python
Python读取Excel数据并生成图表过程解析
Jun 18 Python
python 通过 pybind11 使用Eigen加速代码的步骤
Dec 07 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
Feb 26 #Python
python解释器pycharm安装及环境变量配置教程图文详解
Feb 26 #Python
Python如何使用turtle库绘制图形
Feb 26 #Python
Python解释器以及PyCharm的安装教程图文详解
Feb 26 #Python
Python定时器线程池原理详解
Feb 26 #Python
python ImageDraw类实现几何图形的绘制与文字的绘制
Feb 26 #Python
Python列表解析操作实例总结
Feb 26 #Python
You might like
第九节 绑定 [9]
2006/10/09 PHP
xajax写的留言本
2006/11/25 PHP
逐步提升php框架的性能
2008/01/10 PHP
PHP中iconv函数知识汇总
2015/07/02 PHP
CodeIgniter与PHP5.6的兼容问题
2015/07/16 PHP
PHP防止刷新重复提交页面的示例代码
2015/11/11 PHP
PHP会话控制实例分析
2016/12/24 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
phpStorm+XDebug+chrome 配置详解
2019/04/01 PHP
JS方法调用括号的问题探讨
2014/01/24 Javascript
js实现同一个页面多个渐变效果的方法
2015/04/10 Javascript
javascript最基本的函数汇总
2015/06/25 Javascript
js如何打印object对象
2015/10/16 Javascript
Javascript简单实现面向对象编程继承实例代码
2015/11/27 Javascript
js倒计时简单实现代码
2016/08/11 Javascript
javascript的函数劫持浅析
2016/09/26 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
[47:48]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第三局
2016/02/28 DOTA
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
[53:36]Liquid vs VP Supermajor决赛 BO 第三场 6.10
2018/07/05 DOTA
python采集百度百科的方法
2015/06/05 Python
Python使用matplotlib绘制三维图形示例
2018/08/25 Python
python实现逐个读取txt字符并修改
2018/12/24 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
python里 super类的工作原理详解
2019/06/19 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
python识别验证码图片实例详解
2020/02/17 Python
ipython jupyter notebook中显示图像和数学公式实例
2020/04/15 Python
python 下载m3u8视频的示例代码
2020/11/11 Python
pandas 按日期范围筛选数据的实现
2021/02/20 Python
HTML5 weui使用笔记
2019/11/21 HTML / CSS
公司培训欢迎词
2014/01/10 职场文书
会计与出纳自荐书范文
2014/03/16 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
诚信承诺书
2015/01/19 职场文书
技术员个人工作总结
2015/03/03 职场文书