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类中super()和__init__()的区别
Oct 18 Python
分享给Python新手们的几道简单练习题
Sep 21 Python
浅谈解除装饰器作用(python3新增)
Oct 15 Python
pyqt5 从本地选择图片 并显示在label上的实例
Jun 13 Python
python移位运算的实现
Jul 15 Python
Django ORM 自定义 char 类型字段解析
Aug 09 Python
pycharm配置git(图文教程)
Aug 16 Python
创建Shapefile文件并写入数据的例子
Nov 26 Python
Python分类测试代码实例汇总
Jul 23 Python
Python map及filter函数使用方法解析
Aug 06 Python
基于python爬取链家二手房信息代码示例
Oct 21 Python
Python基本知识点总结
Apr 07 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中ob_flush函数和flush函数用法分析
2015/03/18 PHP
Ubuntu12下编译安装PHP5.3开发环境
2015/03/27 PHP
Yii2使用自带的UploadedFile实现的文件上传
2016/06/20 PHP
[原创]php常用字符串输出方法分析(echo,print,printf及sprintf)
2016/07/09 PHP
php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码
2016/11/09 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
PHP去除空数组且数组键名重置的讲解
2019/02/28 PHP
jquery animate图片模向滑动示例代码
2011/01/26 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
2013/10/29 Javascript
兼容主流浏览器的iframe自适应高度js脚本
2014/01/10 Javascript
jquery实现点击弹出层效果的简单实例
2014/03/03 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
JavaScript中获取时间的函数集
2016/08/16 Javascript
Ajax验证用户名或昵称是否已被注册
2017/04/05 Javascript
JavaScript数组_动力节点Java学院整理
2017/06/26 Javascript
vue中页面跳转拦截器的实现方法
2017/08/23 Javascript
谈谈vue中mixin的一点理解
2017/12/12 Javascript
解决Mac安装thrift因bison报错的问题
2018/05/17 Javascript
[53:38]OG vs LGD 2018国际邀请赛淘汰赛BO3 第三场 8.26
2018/08/30 DOTA
使用Python的Treq on Twisted来进行HTTP压力测试
2015/04/16 Python
python编写微信远程控制电脑的程序
2018/01/05 Python
python操作oracle的完整教程分享
2018/01/30 Python
python DataFrame 修改列的顺序实例
2018/04/10 Python
使用Python爬取Json数据的示例代码
2020/12/07 Python
python 高阶函数简单介绍
2021/02/19 Python
CSS3圆角边框和边界图片效果实例
2016/07/01 HTML / CSS
css3动画 小球滚动 js控制动画暂停
2019/11/29 HTML / CSS
html5新特性与用法大全
2018/09/13 HTML / CSS
基于Html5实现的react拖拽排序组件示例
2018/08/13 HTML / CSS
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
2014/09/26 面试题
《哪吒闹海》教学反思
2014/02/28 职场文书
工商干部先进事迹
2014/05/14 职场文书
维修工先进事迹
2014/05/29 职场文书
纪念九一八事变演讲稿:勿忘国耻
2014/09/14 职场文书
详解Spring Security如何在权限中使用通配符
2022/06/28 Java/Android