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与js)两种实现
Feb 21 Python
python处理csv数据的方法
Mar 11 Python
对numpy 数组和矩阵的乘法的进一步理解
Apr 04 Python
解决使用PyCharm时无法启动控制台的问题
Jan 19 Python
Python mutiprocessing多线程池pool操作示例
Jan 30 Python
Python3.5实现的三级菜单功能示例
Mar 25 Python
pycharm 安装JPype的教程
Aug 08 Python
python 两个一样的字符串用==结果为false问题的解决
Mar 12 Python
python 给图像添加透明度(alpha通道)
Apr 09 Python
python 使用建议与技巧分享(四)
Aug 18 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
Jan 05 Python
django上传文件的三种方式
Apr 29 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开发GUI
2006/10/09 PHP
php 特殊字符处理函数
2008/09/05 PHP
php中的比较运算符详解
2013/10/28 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
2019/10/18 PHP
Javascript 面向对象 继承
2010/05/13 Javascript
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
2010/10/14 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
2011/12/21 Javascript
jquery插件制作简单示例说明
2012/02/03 Javascript
js 通过cookie实现刷新不变化树形菜单
2014/10/30 Javascript
有效提高JavaScript执行效率的几点知识
2015/01/31 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
js实现对ajax请求面向对象的封装
2016/01/08 Javascript
JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
2016/06/24 Javascript
详解handlebars+require基本使用方法
2016/12/21 Javascript
使用Bootstrap4 + Vue2实现分页查询的示例代码
2017/12/21 Javascript
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
Vue实现指令式动态追加小球动画组件的步骤
2020/12/18 Vue.js
[01:20:06]TNC vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Linux下用Python脚本监控目录变化代码分享
2015/05/21 Python
python使用正则表达式提取网页URL的方法
2015/05/26 Python
利用Python的Django框架生成PDF文件的教程
2015/07/22 Python
通过Python 接口使用OpenCV的方法
2018/04/02 Python
python计算两个矩形框重合百分比的实例
2018/11/07 Python
python删除文件夹下相同文件和无法打开的图片
2019/07/16 Python
基于css3的属性transition制作菜单导航效果
2015/09/01 HTML / CSS
HTML5 Canvas图像模糊完美解决办法
2018/02/06 HTML / CSS
HTML5 文件域+FileReader 分段读取文件并上传到服务器
2017/10/23 HTML / CSS
葛优非诚勿扰搞笑征婚台词
2014/03/17 职场文书
党的群众路线教育实践活动公开承诺书
2014/03/28 职场文书
爱国卫生月活动总结范文
2014/04/25 职场文书
建筑工地标语
2014/06/18 职场文书
贷款委托书
2014/08/01 职场文书
快递员岗位职责
2014/09/12 职场文书
单位工作证明
2014/10/07 职场文书
二年级数学教学反思
2016/02/16 职场文书