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实现Tab自动补全和历史命令管理的方法
Mar 12 Python
详细解读Python的web.py框架下的application.py模块
May 02 Python
详解Python中for循环的使用方法
May 14 Python
在Python中操作列表之List.pop()方法的使用
May 21 Python
python结合selenium获取XX省交通违章数据的实现思路及代码
Jun 26 Python
Python面向对象程序设计类的封装与继承用法示例
Apr 12 Python
python实现对象列表根据某个属性排序的方法详解
Jun 11 Python
python pickle存储、读取大数据量列表、字典数据的方法
Jul 07 Python
opencv3/C++实现视频读取、视频写入
Dec 11 Python
Python限制内存和CPU使用量的方法(Unix系统适用)
Aug 04 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
Oct 21 Python
Python OpenCV 图像平移的实现示例
Jun 04 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/06/09 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
2014/11/25 PHP
PHP+redis实现添加处理投票的方法
2015/11/14 PHP
多广告投放代码 推荐
2006/11/13 Javascript
arguments对象
2006/11/20 Javascript
取得一定长度的内容,处理中文
2006/12/20 Javascript
让textarea控件的滚动条怎是位与最下方
2007/04/20 Javascript
基于jquery用于查询操作的实现代码
2010/05/10 Javascript
Jquery常用技巧收集整理篇
2010/11/14 Javascript
一个简单的jQuery计算器实现了连续计算功能
2014/07/21 Javascript
JavaScript学习笔记之数组的增、删、改、查
2016/03/23 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
2017/02/14 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
详解vue 配合vue-resource调用接口获取数据
2017/06/22 Javascript
解决Angular.js中使用Swiper插件不能滑动的问题
2018/02/26 Javascript
vue中使用腾讯云Im的示例
2020/10/23 Javascript
Python 装饰器深入理解
2017/03/16 Python
Python实现的破解字符串找茬游戏算法示例
2017/09/25 Python
Python金融数据可视化汇总
2017/11/17 Python
python互斥锁、加锁、同步机制、异步通信知识总结
2018/02/11 Python
Python元组及文件核心对象类型详解
2018/02/11 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
Python实现多态、协议和鸭子类型的代码详解
2019/05/05 Python
Python 实现try重新执行
2019/12/21 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
2020/09/04 Python
matplotlib 三维图表绘制方法简介
2020/09/20 Python
Python3使用 GitLab API 进行批量合并分支
2020/10/15 Python
详解Python流程控制语句
2020/10/28 Python
Python 生成短8位唯一id实战教程
2021/01/13 Python
html5中canvas学习笔记2-判断浏览器是否支持canvas
2013/01/06 HTML / CSS
最新远光软件笔试题面试题内容
2013/11/08 面试题
大学生通用个人自我评价
2014/04/27 职场文书
企业催款函范本
2015/06/24 职场文书
礼貌问候语大全
2015/11/10 职场文书
导游词创作书写原则以及开场白技巧怎么学?
2019/09/25 职场文书
MySQL 数据库 增删查改、克隆、外键 等操作
2022/05/11 MySQL