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制作检测Linux运行信息的工具的教程
Apr 01 Python
详解Python中time()方法的使用的教程
May 22 Python
全面理解Python中self的用法
Jun 04 Python
在Python中定义和使用抽象类的方法
Jun 30 Python
python中的闭包函数
Feb 09 Python
Python 经典面试题 21 道【不可错过】
Sep 21 Python
python pcm音频添加头转成Wav格式文件的方法
Jan 09 Python
python 多个参数不为空校验方法
Feb 14 Python
使用python脚本自动创建pip.ini配置文件代码实例
Sep 20 Python
用Python生成HTML表格的方法示例
Mar 06 Python
keras 解决加载lstm+crf模型出错的问题
Jun 10 Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
Dec 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重新实现PHP脚本引擎内置函数
2007/03/06 PHP
解析PHP提交后跳转
2013/06/23 PHP
php 基础函数
2017/02/10 PHP
laravel框架如何设置公共头和公共尾
2019/10/22 PHP
Js 获取当前日期时间及其它操作实现代码
2021/03/04 Javascript
javascript setTimeout和setInterval 的区别
2009/12/08 Javascript
JavaScript 编写匿名函数的几种方法
2010/02/21 Javascript
子窗口、父窗口和Silverlight之间的相互调用
2010/08/16 Javascript
浅谈JavaScript函数参数的可修改性问题
2013/12/05 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
JavaScript弹出新窗口并控制窗口移动到指定位置的方法
2015/04/06 Javascript
微信小程序 小程序制作及动画(animation样式)详解
2017/01/06 Javascript
微信小程序注册60s倒计时功能 使用JS实现注册60s倒计时功能
2017/08/16 Javascript
微信小程序实现导航栏选项卡效果
2020/06/19 Javascript
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
VUE简单的定时器实时刷新的实现方法
2019/01/20 Javascript
WebGL学习教程之Three.js学习笔记(第一篇)
2019/04/25 Javascript
微信小程序实现音乐播放器
2019/11/20 Javascript
jdk1.8+vue elementui实现多级菜单功能
2020/09/24 Javascript
[59:07]海涛为你详解DOTA2新版本“贤哲秘契”
2014/11/22 DOTA
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
python版学生管理系统
2018/01/10 Python
用python简单实现mysql数据同步到ElasticSearch的教程
2018/05/30 Python
pyQt5实时刷新界面的示例
2019/06/25 Python
python实现两个一维列表合并成一个二维列表
2019/12/02 Python
python 申请内存空间,用于创建多维数组的实例
2019/12/02 Python
解决django的template中如果无法引用MEDIA_URL问题
2020/04/07 Python
基于Python爬取51cto博客页面信息过程解析
2020/08/25 Python
英国领先的在线药房:Pharmacy First
2017/09/10 全球购物
写演讲稿要注意的六件事
2014/01/14 职场文书
数控技术学生的自我评价
2014/02/15 职场文书
诚实守信道德模范事迹材料
2014/08/15 职场文书
医院领导班子四风对照检查材料
2014/09/27 职场文书
税务会计岗位职责
2015/04/02 职场文书
评奖评优个人先进事迹材料
2015/11/04 职场文书