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到Text纯文本的方法
Jan 15 Python
python中模块查找的原理与方法详解
Aug 11 Python
python中利用Future对象回调别的函数示例代码
Sep 07 Python
Python中的defaultdict与__missing__()使用介绍
Feb 03 Python
python读取TXT每行,并存到LIST中的方法
Oct 26 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
Feb 21 Python
解决Numpy中sum函数求和结果维度的问题
Dec 06 Python
python itsdangerous模块的具体使用方法
Feb 17 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
May 27 Python
Python unittest基本使用方法代码实例
Jun 29 Python
PyTorch如何搭建一个简单的网络
Aug 24 Python
python 自动刷新网页的两种方法
Apr 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
mysql 性能的检查和优化方法
2009/06/21 PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
2014/08/20 PHP
JS启动应用程序的一个简单例子
2008/05/11 Javascript
js实现两个值相加alert出来精确到指定位
2013/09/25 Javascript
js使用removeChild方法动态删除div元素
2014/08/01 Javascript
jQuery 浮动导航菜单适合购物商品类型的网站
2014/09/09 Javascript
js中使用使用原型(prototype)定义方法的好处详解
2016/07/04 Javascript
javascript深拷贝(deepClone)详解
2016/08/24 Javascript
原生javascript上传图片带进度条【实例分享】
2017/04/06 Javascript
微信小程序 标签传入数据
2017/05/08 Javascript
js案例之鼠标跟随jquery版(实例讲解)
2017/07/21 jQuery
JavaScript实现各种排序的代码详解
2017/08/28 Javascript
javascript 开发之网页兼容各种浏览器
2017/09/28 Javascript
Webpack优化配置缩小文件搜索范围
2017/12/25 Javascript
JavaScript解析机制与闭包原理实例详解
2019/03/08 Javascript
[02:05]2014DOTA2西雅图邀请赛 专访啸天mik夫妻档
2014/07/08 DOTA
python获取文件版本信息、公司名和产品名的方法
2014/10/05 Python
深入源码解析Python中的对象与类型
2015/12/11 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
Python和Anaconda和Pycharm安装教程图文详解
2020/02/04 Python
浅谈python累加求和+奇偶数求和_break_continue
2020/02/25 Python
Python爬虫程序架构和运行流程原理解析
2020/03/09 Python
python中threading开启关闭线程操作
2020/05/02 Python
Django如何使用asyncio协程和ThreadPoolExecutor多线程
2020/10/12 Python
BNKR中国官网:带你感受澳洲领先潮流时尚
2018/08/21 全球购物
Booking.com德国:预订最好的酒店和住宿
2020/02/16 全球购物
UNIX命令速查表
2012/03/10 面试题
高中军训感言200字
2014/02/23 职场文书
自动一体化专业求职信
2014/03/15 职场文书
应届毕业生自荐信
2014/05/28 职场文书
海洋科学专业求职信
2014/08/10 职场文书
Matplotlib绘制混淆矩阵的实现
2021/05/27 Python
Android Studio 计算器开发
2022/05/20 Java/Android
不想升级Win11?教你彻底锁定老版Windows系统的方法(附下载地址)
2022/09/23 数码科技