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 解析html之BeautifulSoup
Jul 07 Python
Python中import导入上一级目录模块及循环import问题的解决
Jun 04 Python
Python中asyncore异步模块的用法及实现httpclient的实例
Jun 28 Python
Python学生信息管理系统修改版
Mar 13 Python
通过Python 接口使用OpenCV的方法
Apr 02 Python
python smtplib模块自动收发邮件功能(二)
May 22 Python
查看django执行的sql语句及消耗时间的两种方法
May 29 Python
Python的matplotlib绘图如何修改背景颜色的实现
Jul 16 Python
Python多线程通信queue队列用法实例分析
Mar 24 Python
解决redis与Python交互取出来的是bytes类型的问题
Jul 16 Python
如何使用Django Admin管理后台导入CSV
Nov 06 Python
如何用 Python 制作一个迷宫游戏
Feb 25 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/12/06 PHP
c#中的实现php中的preg_replace
2009/12/21 PHP
PHP+Mysql+jQuery实现发布微博程序 jQuery篇
2011/10/08 PHP
简单的php缓存类分享     php缓存机制
2014/01/22 PHP
PHP_Cooikes不同页面无法传递的解决方法
2014/03/07 PHP
php实用代码片段整理
2016/11/12 PHP
PHP session垃圾回收机制实例分析
2019/06/28 PHP
在浏览器窗口上添加遮罩层的方法
2012/11/12 Javascript
javascript简单实现图片预加载
2014/12/03 Javascript
jQuery多媒体插件jQuery Media Plugin使用详解
2014/12/19 Javascript
12种JavaScript常用的MVC框架比较分析
2015/11/16 Javascript
js弹出窗口返回值的简单实例
2016/05/28 Javascript
Javascript对象字面量的理解
2016/06/22 Javascript
javascript基本数据类型及类型检测常用方法小结
2016/12/14 Javascript
Angular数据绑定机制原理
2018/04/17 Javascript
JavaScript实现轮播图效果代码实例
2019/09/28 Javascript
electron 安装,调试,打包的具体使用
2019/11/06 Javascript
JavaScript如何判断对象有某属性
2020/07/03 Javascript
[03:52]显微镜下的DOTA2第三期——英雄在无聊的时候干什么
2014/06/20 DOTA
Python 删除连续出现的指定字符的实例
2018/06/29 Python
Python实现的txt文件去重功能示例
2018/07/07 Python
python模块导入的细节详解
2018/12/10 Python
Django ORM多对多查询方法(自定义第三张表&ManyToManyField)
2019/08/09 Python
Python socket非阻塞模块应用示例
2019/09/12 Python
Python实现图片添加文字
2019/11/26 Python
Jupyter Notebook输出矢量图实例
2020/04/14 Python
Python非单向递归函数如何返回全部结果
2020/12/18 Python
美国女鞋品牌:naturalizer(娜然)
2016/08/01 全球购物
Expedia英国:全球最大的在线旅游公司
2017/09/07 全球购物
美国迪克体育用品商店:DICK’S Sporting Goods
2018/07/24 全球购物
会计电算化专业应届大学生求职信
2013/10/22 职场文书
学生个人的自我评价分享
2013/11/05 职场文书
电子技术专业中专生的自我评价
2013/12/17 职场文书
五一劳动节活动总结
2015/02/09 职场文书
2015年组织部工作总结
2015/04/03 职场文书
评测 | 大屏显示带收音机的高端音箱,JBL TUNE2便携式插卡音箱实测
2021/04/24 无线电