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插入排序算法的实现代码
Nov 21 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
Mar 02 Python
python 调用HBase的简单实例
Dec 18 Python
Python 专题一 函数的基础知识
Mar 16 Python
python删除过期log文件操作实例解析
Jan 31 Python
对Python 窗体(tkinter)树状数据(Treeview)详解
Oct 11 Python
使用Python的toolz库开始函数式编程的方法
Nov 15 Python
使用k8s部署Django项目的方法步骤
Jan 14 Python
解决python测试opencv时imread导致的错误问题
Jan 26 Python
python socket 聊天室实例代码详解
Nov 14 Python
Python线程协作threading.Condition实现过程解析
Mar 12 Python
安装pyinstaller遇到的各种问题(小结)
Nov 20 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中遍历stdclass object的实现代码
2011/06/09 PHP
php中长文章分页显示实现代码
2012/09/29 PHP
PHP实现单条sql执行多个数据的insert语句方法
2019/10/11 PHP
JQuery的Alert消息框插件使用介绍
2010/10/09 Javascript
使用CSS样式position:fixed水平滚动的方法
2014/02/19 Javascript
js选项卡的实现方法
2015/02/09 Javascript
JS+CSS实现表格高亮的方法
2015/08/05 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
2015/10/01 Javascript
js改变透明度实现轮播图的算法
2020/08/24 Javascript
JavaScript实现一个空中避难的小游戏
2017/06/06 Javascript
微信小程序数据存储与取值详解
2018/01/30 Javascript
angular4 共享服务在多个组件中数据通信的示例
2018/03/30 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
JavaScript原型对象、构造函数和实例对象功能与用法详解
2018/08/04 Javascript
使用Node.js实现base64和png文件相互转换的方法
2020/03/11 Javascript
python常用函数详解
2016/09/13 Python
对numpy 数组和矩阵的乘法的进一步理解
2018/04/04 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
django admin 后台实现三级联动的示例代码
2018/06/22 Python
详解如何用django实现redirect的几种方法总结
2018/11/22 Python
pytorch 可视化feature map的示例代码
2019/08/20 Python
Python多线程实现支付模拟请求过程解析
2020/04/21 Python
python 使用tkinter+you-get实现视频下载器
2020/11/17 Python
python 实时调取摄像头的示例代码
2020/11/25 Python
解决Python import .pyd 可能遇到路径的问题
2021/03/04 Python
Vero Moda西班牙官方购物网站:丹麦BESTSELLER旗下知名女装品牌
2018/04/27 全球购物
Antonioli美国在线商店:时尚前卫奢华
2019/07/29 全球购物
护理专业毕业生推荐信
2013/10/31 职场文书
大学国际贸易专业自荐信
2014/06/05 职场文书
党的群众路线教育实践活动个人对照检查材料范文
2014/09/25 职场文书
教师见习报告范文
2014/11/03 职场文书
先进教育工作者事迹材料
2014/12/23 职场文书
党支部书记岗位职责
2015/02/15 职场文书
2015年汽车销售经理工作总结
2015/04/27 职场文书
跳高加油稿
2015/07/21 职场文书
学困生帮扶工作总结
2015/08/13 职场文书