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包的五个简单准则简介
Jun 15 Python
Python实现二叉树结构与进行二叉树遍历的方法详解
May 24 Python
python函数式编程学习之yield表达式形式详解
Mar 25 Python
python3 爬取图片的实例代码
Nov 06 Python
python读取各种文件数据方法解析
Dec 29 Python
Python 调用PIL库失败的解决方法
Jan 08 Python
用Python识别人脸,人种等各种信息
Jul 15 Python
Python的条件锁与事件共享详解
Sep 12 Python
python超时重新请求解决方案
Oct 21 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
Mar 10 Python
python 实现读取csv数据,分类求和 再写进 csv
May 18 Python
Python中else的三种使用场景
Jun 16 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提取字符串中的图片地址[正则表达式]
2011/11/12 PHP
php中调用其他系统http接口的方法说明
2014/02/28 PHP
php有道翻译api调用方法实例
2014/12/22 PHP
JavaScript面向对象之Prototypes和继承
2012/07/12 Javascript
基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
2013/04/26 Javascript
IE下支持文本框和密码框placeholder效果的JQuery插件分享
2015/01/31 Javascript
javascript委托(Delegate)blur和focus用法实例分析
2015/05/26 Javascript
JavaScript中的Repaint和Reflow用法详解
2015/07/27 Javascript
js数字计算 误差问题的快速解决方法
2017/02/28 Javascript
jQuery编写textarea输入字数限制代码
2017/03/23 jQuery
angularjs指令之绑定策略(@、=、&)
2017/04/13 Javascript
Vue开发中整合axios的文件整理
2017/04/29 Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
2017/06/19 Javascript
Node.js 回调函数实例详解
2017/07/06 Javascript
微信小程序实现action-sheet弹出底部菜单功能【附源码下载】
2017/12/09 Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
2018/01/25 jQuery
vue添加class样式实例讲解
2019/02/12 Javascript
前端深入理解Typescript泛型概念
2020/03/09 Javascript
python 打印出所有的对象/模块的属性(实例代码)
2016/09/11 Python
python中子类调用父类函数的方法示例
2017/08/18 Python
Python批量更改文件名的实现方法
2017/10/29 Python
python OpenCV学习笔记直方图反向投影的实现
2018/02/07 Python
python 寻找离散序列极值点的方法
2019/07/10 Python
用Python从0开始实现一个中文拼音输入法的思路详解
2019/07/20 Python
pyqt5、qtdesigner安装和环境设置教程
2019/09/25 Python
如何理解python中数字列表
2020/05/29 Python
经济信息管理专业大学生求职信
2013/09/27 职场文书
音乐学个人的自荐书范文
2013/11/26 职场文书
学期自我评价
2014/01/27 职场文书
优秀毕业生自我鉴定
2014/02/11 职场文书
历史专业学生的自我评价
2014/02/28 职场文书
拓展策划方案
2014/06/03 职场文书
副总经理党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/06 职场文书
HTML+css盒子模型案例(圆,半圆等)“border-radius” 简单易上手
2021/05/10 HTML / CSS
vue实现滑动解锁功能
2022/03/03 Vue.js
Oracle数据库中通用的函数实例详解
2022/03/25 Oracle