Python字典操作详细介绍及字典内建方法分享


Posted in Python onJanuary 04, 2018

创建

方法一:

>>> dict1 = {}
>>> dict2 = {'name': 'earth', 'port': 80}
>>> dict1, dict2
({}, {'port': 80, 'name': 'earth'})

方法二:从Python 2.2 版本起,可以使用一个工厂方法,传入一个元素是列表的元组作为参数

>>> fdict = dict((['x', 1], ['y', 2]))
>>> fdict
{'y': 2, 'x': 1}

方法三:

从Python 2.3 版本起, 可以用一个很方便的内建方法fromkeys() 来创建一个"默认"字典, 字典中元素具有相同的值 (如果没有给出, 默认为None,这个有点像我框架的oneObject方法):

>>> ddict = {}.fromkeys(('x', 'y'), -1) 
>>> ddict
{'y': -1, 'x': -1}
>>>
>>> edict = {}.fromkeys(('foo', 'bar'))
>>> edict
{'foo': None, 'bar': None}

访问字典中的值

想遍历一个字典(一般用键), 你只需要循环查看它的键, 像这样:

>>> dict2 = {'name': 'earth', 'port': 80}
>>>
>>>> for key in dict2.keys():
... print 'key=%s, value=%s' % (key, dict2[key])
...
key=name, value=earth
key=port, value=80

从Python 2.2 开始,可以直接在 for 循环里遍历字典。

>>> dict2 = {'name': 'earth', 'port': 80}
>>>
>>>> for key in dict2:
... print 'key=%s, value=%s' % (key, dict2[key])
...
key=name, value=earth
key=port, value=80

想判定其是否存在某个键值对,可以使用has_key()或 in 、 not in 操作符

>>> 'server' in dict2 # 或 dict2.has_key('server')
False
>>> 'name' in dict # 或 dict2.has_key('name')
True
>>> dict2['name']
'earth'

一个字典中混用数字和字符串的例子:

>>> dict3 = {}
>>> dict3[1] = 'abc'
>>> dict3['1'] = 3.14159
>>> dict3[3.2] = 'xyz'
>>> dict3
{3.2: 'xyz', 1: 'abc', '1': 3.14159}

更新字典

采取覆盖更新

上例中 dict2['name']='earth';

更新 dict2['name']='abc';

删除字典元素和字典

del dict2['name'] # 删除键为“name”的条目

dict2.clear() # 删除dict2 中所有的条目

del dict2 # 删除整个dict2 字典

dict2.pop('name') # 删除并返回键为“name”的条目

dict2 = {'name': 'earth', 'port': 80}
>>> dict2.keys()
['port', 'name']
>>>
>>> dict2.values()
[80, 'earth']
>>>
>>> dict2.items()
[('port', 80), ('name', 'earth')]
>>>
>>> for eachKey in dict2.keys():
... print 'dict2 key', eachKey, 'has value', dict2[eachKey]
...
dict2 key port has value 80
dict2 key name has value earth

update()方法可以用来将一个字典的内容添加到另外一个字典中

dict3 = {'server': 'http', 'port': 80, 'host': 'venus'}
>>> dict3.clear()
>>> dict3
{}

映射类型相关的函数

>>> dict(x=1, y=2)
{'y': 2, 'x': 1}
>>> dict8 = dict(x=1, y=2)
>>> dict8
{'y': 2, 'x': 1}
>>> dict9 = dict(**dict8)
>>> dict9
{'y': 2, 'x': 1}
 
dict9 = dict8.copy()

字典内建方法

方法名字 操作
dict.clear() 删除字典中所有元素
dict.copy() 返回字典(浅复制)的一个副本
dict.fromkeysc(seq,val=None) 创建并返回一个新字典,以seq 中的元素做该字典的键,val 做该字典中所有键对应的初始值(如果不提供此值,则默认为None)
dict.get(key,default=None) 对字典dict 中的键key,返回它对应的值value,如果字典中不存在此键,则返回default 的值(注意,参数default 的默认值为None)
dict.has_key(key) 如果键(key)在字典中存在,返回True,否则返回False. 在Python2.2版本引入in 和not in 后,此方法几乎已废弃不用了,但仍提供一个 可工作的接口。
dict.items() 返回一个包含字典中(键, 值)对元组的列表
dict.keys() 返回一个包含字典中键的列表
dict.values() 返回一个包含字典中所有值的列表
dict.iter() 方法iteritems(), iterkeys(), itervalues()与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表。
dict.pop(key[, default]) 和方法get()相似,如果字典中key 键存在,删除并返回dict[key],如果key 键不存在,且没有给出default 的值,引发KeyError 异常。
dict.setdefault(key,default=None) 和方法set()相似,如果字典中不存在key 键,由dict[key]=default 为它赋值。
dict.setdefault(key,default=None) 和方法set()相似,如果字典中不存在key 键,由dict[key]=default 为它赋值。

总结

以上就是本文关于Python字典操作详细介绍及字典内建方法分享的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Python实现模拟分割大文件及多线程处理的方法
Oct 10 Python
Python探索之SocketServer详解
Oct 28 Python
ubuntu环境下python虚拟环境的安装过程
Jan 07 Python
Pycharm 操作Django Model的简单运用方法
May 23 Python
python实现超简单的视频对象提取功能
Jun 04 Python
对python生成业务报表的实例详解
Feb 03 Python
Python实现随机取一个矩阵数组的某几行
Nov 26 Python
Python读取实时数据流示例
Dec 02 Python
python路径的写法及目录的获取方式
Dec 26 Python
python让函数不返回结果的方法
Jun 22 Python
基于python实现图片转字符画代码实例
Sep 04 Python
Python中的np.argmin()和np.argmax()函数用法
Jun 02 Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
Jan 04 #Python
Python给你的头像加上圣诞帽
Jan 04 #Python
Python编程实现线性回归和批量梯度下降法代码实例
Jan 04 #Python
Python语言描述随机梯度下降法
Jan 04 #Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
Jan 04 #Python
python使用xpath中遇到:到底是什么?
Jan 04 #Python
python使用itchat库实现微信机器人(好友聊天、群聊天)
Jan 04 #Python
You might like
PHP个人网站架设连环讲(一)
2006/10/09 PHP
PHP通过COM使用ADODB的简单例子
2006/12/31 PHP
PHP面向对象分析设计的经验原则
2008/09/20 PHP
php操作xml
2013/10/27 PHP
非常实用的php弹出错误警告函数扩展性强
2014/01/17 PHP
深入讲解PHP的对象注入(Object Injection)
2017/03/01 PHP
解决Laravel blade模板转义html标签的问题
2019/09/03 PHP
符合W3C网页标准的iframe标签的使用方法
2007/07/19 Javascript
Knockoutjs 学习系列(二)花式捆绑
2016/06/07 Javascript
JavaScript使用forEach()与jQuery使用each遍历数组时return false 的区别
2016/08/26 Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
2016/10/21 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
2016/11/15 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
基于Angular.js实现的触摸滑动动画实例代码
2017/02/19 Javascript
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
使用SVG基本操作API的实例讲解
2017/09/14 Javascript
去掉vue 中的代码规范检测两种方法(Eslint验证)
2018/03/21 Javascript
vue计算属性和监听器实例解析
2018/05/10 Javascript
JS根据json数组多个字段排序及json数组常用操作
2019/06/06 Javascript
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
2020/04/11 Javascript
Python中文编码那些事
2014/06/25 Python
对tensorflow 的模型保存和调用实例讲解
2018/07/28 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
2019/02/16 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
如何使用Python抓取网页tag操作
2020/02/14 Python
Python使用matplotlib绘制圆形代码实例
2020/05/27 Python
Python如何对齐字符串
2020/07/30 Python
python使用建议技巧分享(三)
2020/08/18 Python
上班离岗检讨书
2014/01/27 职场文书
村庄绿化方案
2014/05/07 职场文书
2014年政风行风自查自纠报告
2014/10/21 职场文书
个人党性锻炼总结
2015/03/05 职场文书
学习党史心得体会2016
2016/01/23 职场文书
python自动化之如何利用allure生成测试报告
2021/05/02 Python
Vue实现动态查询规则生成组件
2021/05/27 Vue.js