python中字典(Dictionary)用法实例详解


Posted in Python onMay 30, 2015

本文实例讲述了python中字典(Dictionary)用法。分享给大家供大家参考。具体分析如下:

字典(Dictionary)是一种映射结构的数据类型,由无序的“键-值对”组成。字典的键必须是不可改变的类型,如:字符串,数字,tuple;值可以为任何python数据类型。

1、新建字典

>>> dict1={} #建立一个空字典
>>> type(dict1)
<type 'dict'>

2、增加字典元素:两种方法

>>> dict1['a']=1 #第一种
>>> dict1
{'a': 1}
#第二种:setdefault方法
>>> dict1.setdefault('b',2)
2
>>> dict1
{'a': 1, 'b': 2}

3、删除字典

#删除指定键-值对
>>> dict1
{'a': 1, 'b': 2}
>>> del dict1['a'] #也可以用pop方法,dict1.pop('a')
>>> dict1
{'b': 2}
#清空字典
>>> dict1.clear()
>>> dict1 #字典变为空了
{}
#删除字典对象
>>> del dict1
>>> dict1
Traceback (most recent call last):
 File "<interactive input>", line 1, in <module>
NameError: name 'dict1' is not defined

4、字典的方法

1)get(key,default=None)

返回键值key对应的值;如果key没有在字典里,则返回default参数的值,默认为None

>>> dict1 #空的字典
{}
>>> dict1.get('a') #键‘a'在dict1中不存在,返回none
>>> dict1.get('d1','no1')  #default参数给出值'no1',所以返回'no1'
'no1'
>>> dict1['a']='no1' #插入一个新元素
>>> dict1
{'a': '1111'}
>>> dict1.get('a') #现在键'a'存在,返回其值
'1111'

2)clear 清空字典

3)has_key(key) 如果key出现在dict里则返回True;否则返回False

>>> dict1
{'a': '1111'}
>>> dict1.has_key('b')
False
>>> dict1.has_key('a')
True

4)items 返回dict的(键,值)tuple对的一个列表

>>> dict1
{'a': 'no1', 'b': '2222'}
>>> dict1.items()
[('a', 'no1'), ('b', '2222')]

5)keys 返回dict的键列表

6)values 返回dict的值列表

>>> dict1
{'a': 'no1', 'b': '2222'}
>>> dict1.keys()
['a', 'b']
>>> dict1.values()
['no1', '2222']

7)setdefault(key,default=None)

如果dict中有key,则返回key值,如果没有找到key,则在dict中加上该key,值由default参数给出,默认None

8)update(dict2)

把dict2的元素加入到dict中去,键字重复时会覆盖dict中的键值

>>> dict2
{'c': '3333', 'b': 'no2'}
>>> dict1 #dict2和dict1的键‘b'重复
{'a': 'no1', 'b': '2222'}
>>> dict1.update(dict2) #调用update后,dict1的键'b'值被覆盖了
>>> dict1
{'a': 'no1', 'c': '3333', 'b': 'no2'}

9)popitem 删除任意键-值对,并返回该键-值对,如字典为空,则产生异常

>>> dict1
{'b': 'no2'}
>>> dict1.popitem()
('b', 'no2')
>>> dict1
{}
>>> dict1.popitem()
Traceback (most recent call last):
 File "<interactive input>", line 1, in <module>
KeyError: 'popitem(): dictionary is empty'

10)pop(key,[d]) 删除指定键字的键-值对,并返回该键对应的值

>>> dict1
{'a': 'no1', 'c': '3333', 'b': 'no2'}
>>> dict1.pop('a')
'no1'
>>> dict1
{'c': '3333', 'b': 'no2'}

11)copy 返回字典的一个浅拷贝

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python实现的彩票机选器实例
Jun 17 Python
Python使用修饰器执行函数的参数检查功能示例
Sep 26 Python
python画柱状图--不同颜色并显示数值的方法
Dec 13 Python
Python进阶之全面解读高级特性之切片
Feb 19 Python
Python玩转加密的技巧【推荐】
May 13 Python
django之自定义软删除Model的方法
Aug 14 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
Sep 18 Python
python使用matplotlib绘制雷达图
Oct 18 Python
Python zip函数打包元素实例解析
Dec 11 Python
python logging.basicConfig不生效的原因及解决
Feb 20 Python
浅谈Django中的QueryDict元素为数组的坑
Mar 31 Python
python 制作本地应用搜索工具
Feb 27 Python
python集合用法实例分析
May 30 #Python
基于wxpython实现的windows GUI程序实例
May 30 #Python
python简单实现旋转图片的方法
May 30 #Python
Python实现控制台输入密码的方法
May 29 #Python
python删除过期文件的方法
May 29 #Python
Python的Django框架中TEMPLATES项的设置教程
May 29 #Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
May 29 #Python
You might like
在任意字符集下正常显示网页的方法一
2007/04/01 PHP
PHP中鲜为人知的10个函数
2014/02/28 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
2020/06/03 PHP
js 函数的执行环境和作用域链的深入解析
2009/11/01 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件打包下载
2010/09/15 Javascript
Javascript实现滑块滑动改变值的实现代码
2013/04/12 Javascript
为开发者准备的10款最好的jQuery日历插件
2014/02/04 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
2014/08/24 Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
2016/03/16 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
2016/05/10 Javascript
IONIC自定义subheader的最佳解决方案
2016/09/22 Javascript
js html5 css俄罗斯方块游戏再现
2016/10/17 Javascript
解析微信JS-SDK配置授权,实现分享接口
2016/12/09 Javascript
JS验证码实现代码
2017/09/14 Javascript
Angular2进阶之如何避免Dom误区
2018/04/02 Javascript
vue中,在本地缓存中读写数据的方法
2018/09/21 Javascript
vue下拉菜单组件(含搜索)的实现代码
2018/11/25 Javascript
JS html事件冒泡和事件捕获操作示例
2019/05/01 Javascript
微信小程序云开发如何使用npm安装依赖
2019/05/18 Javascript
使用Layui搭建后台管理界面的操作方法
2019/09/20 Javascript
高性能js数组去重(12种方法,史上最全)
2019/12/21 Javascript
通过微信公众平台获取公众号文章的方法示例
2019/12/25 Javascript
基于js实现数组相邻元素上移下移
2020/05/19 Javascript
Python使用Flask框架获取当前查询参数的方法
2015/03/21 Python
Python字符串拼接的几种方法整理
2017/08/02 Python
python中的随机函数random的用法示例
2018/01/27 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
如何通过Python实现标签云算法
2019/07/02 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
详解Matplotlib绘图之属性设置
2019/08/23 Python
解决paramiko执行命令超时的问题
2020/04/16 Python
Python绘制动态水球图过程详解
2020/06/03 Python
Python使用jpype模块调用jar包过程解析
2020/07/29 Python
matplotlib基础绘图命令之errorbar的使用
2020/08/13 Python
高中生自我评语大全
2014/01/19 职场文书
在Django中使用MQTT的方法
2021/05/10 Python