《Python程序设计案例教程》 课件 4.3字典_第1页
《Python程序设计案例教程》 课件 4.3字典_第2页
《Python程序设计案例教程》 课件 4.3字典_第3页
《Python程序设计案例教程》 课件 4.3字典_第4页
《Python程序设计案例教程》 课件 4.3字典_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python编程基础字典一、字典的定义与访问二、字典的常见操作三、字典的遍历和嵌套引入*映射是通过键值查找一组数据值信息的过程,由“键-值”对组成。通过键可以找到其映射的值。比如手机通讯录,姓名和电话之间就存在映射关系,只要定位到特定姓名,就可以查找到对应的电话号码。其中,姓名就类似于“键”,而手机号码就类似于对应的“值”。引入*字典(dictionary)是Python中内置的映射类型,是包含若干“键:值”元素的无序可变序列。字典中的每个元素包含用冒号分隔开的“键”和“值”两部分,不同元素之间用逗号分隔,所有的元素放在一对大括号"{}"中。其中键可以是Python中任意不可变数据,也就是说在同一个字典中,键(Key)必须是唯一的,而值是可以重复的。此外,由于字典中的元素(键值对)是无序的,因此不能对字典进行索引、切片等操作。一、字典的定义与访问在Python中,字典定义的语法格式如下所示。字典对象={键1:值1,键2:值2,…,键n:值n}字典对于值的类型,并没有过多的限制,但是键的类型必须是数字、字符串或元组等不可变类型。*一、字典的定义与访问【例】empty_dict={}#空字典empty_dict=dict()#或者使用dict()#如果字典不为空,那么键和值之间要用冒号":"隔开,元素(键值对)之间用","隔开dict1={'weight':100,'height':1.83}一个空字典可以用一对花括号"{}"表示,也可以用dict()函数创建一、字典的定义与访问【例】通过赋值的方式创建字典dict2={}dict2["id"]=101dict2["name"]="Lisa"dict2["age"]=18print("dict2:",dict2)执行程序,运行结果如下所示dict2:{'id':101,'name':'Lisa','age':18}一、字典的定义与访问【例】利用内置函数dict()通过已有数据快速创建字典dict3=dict([(1,'a'),(2,'b'),(3,'c')])print("dict3:",dict3)dict4=dict(a=1,b=2,c=3)print("dict4:",dict4)执行程序,运行结果如下所示dict3:{1:'a',2:'b',3:'c'}dict4:{'a':1,'b':2,'c':3}内置函数fromkeys()也可以创建字典,使用给定的键,创建一个新的字典对象,每个键默认对应的值为None。一、字典的定义与访问【例】利用内置函数fromkeys()创建字典。dict5={}.fromkeys(['id','name','age'])print("dict5:",dict5)dict5['id']='100'print("dict5:",dict5)执行程序,运行结果如下所示dict5:{'id':None,'name':None,'age':None}dict5:{'id':'100','name':None,'age':None}fromkeys()是字典的方法,不能单独使用一、字典的定义与访问访问字典里的值和访问序列元素是一样的,通过方括号"[]",把相应的键放入其中,即以键作为下标可以读取字典元素,若键不存在则会抛出异常。*【例】aDict={'name':'Dong','sex':'male','age':37}print(aDict['name'])print(aDict['tel'])#输出:Dong#键不存在,抛出异常如何避免由于键不存在而引发的异常?一、字典的定义与访问【例1】使用操作符in检查键是否存在aDict={'name':'Dong','sex':'male','age':37}if'age'inaDict:print(aDict['age'])执行程序,运行结果如下所示37使用操作符in可以检查指定的键是否在字典对象中存在,如果存在,返回True,否则返回False。一、字典的定义与访问【例2】利用get()方法>>>aDict.get('name')#键存在,返回对应的值

'Dong'>>>aDict.get('city')#键不存在,返回None值

None>>>aDict.get('city','不存在')#键不存在,返回指定参数default的值

'不存在'>>>aDict.get('age','不存在')#键存在,参数default无效

37使用字典内置的get()方法可以获取指定键对应的值,并且可以在键不存在的时候返回指定值,如果不指定,则默认返回None。语法格式:dict.get(key,default=None)二、字典的常见操作字典元素的读取使用字典对象的items()方法可以返回字典的键、值对列表;使用字典对象的keys()方法可以返回字典的键列表;使用字典对象的values()方法可以返回字典的值列表。【例】>>>aDict={'name':'Dong','sex':'male','age':37}>>>aDict.items()#返回所有键-值对

dict_items([('name','Dong'),('sex','male'),('age',37)])>>>aDict.keys()#返回所有键

dict_keys(['name','sex','age’])>>>aDict.values()#返回所有值

dict_values(['Dong','male',37])

*二、字典的常见操作键值对的增加与修改当以指定键为下标为字典赋值时,若键存在,则可以修改该键的值;若不存在,则表示添加一个键值对。*【例】>>>aDict['age']=38#修改元素值>>>aDict#此时aDict的值{'age':38,'name':'Dong','sex':'male'}>>>aDict['address']='SDIBT'#增加新元素>>>aDict#此时aDict的值{'age':38,'address':'SDIBT','name':'Dong','sex':'male'}二、字典的常见操作方法说明dicts.get(key,default)键存在则返回相应值,否则返回默认值dicts.pop(key,default)键存在则返回相应值,同时删除键值对,否则返回默认值dicts.keys()返回所有的键信息dicts.values()返回所有的值信息dicts.items()返回所有的键值对dicts.popitem()删除字典的最后一个键值对,并将其以元组(key,value)的形式返回(注意:如果字典为空,会产生KeyError异常)dicts.clear()删除所有的键值对deldicts[key]删除字典中的某个键值对dicts.copy()复制字典dicts.update(dicts2)更新字典,参数dicts2为更新的字典*二、字典的常见操作【例】字典常用方法——copy()方法的使用dict1={1:'a',2:'b',3:'c'}#定义字典dict2=dict1.copy()dict2[1]='m’print(dict1)print(dict2)执行程序,运行结果如下所示{1:'a',2:'b',3:'c'}{1:'m',2:'b',3:'c'}二、字典的常见操作【例】字典常用方法——update()方法的使用dict1={1:'a',2:'b',3:'c'}#定义字典dict2={1:'x’}dict1.update(dict2)print(dict1)dict3={4:'d’}dict1.update(dict3)print(dict1)执行程序,运行结果如下所示{1:'x',2:'b',3:'c'}{1:'x',2:'b',3:'c',4:'d'}update()方法可以向指定的字典中添加另一个字典中的键值对三、字典的遍历和嵌套使用上面的keys()、values()和items()等内置方法,与for和in配合,就可以用来遍历字典对象中的所有数据。*【例】字典的遍历counts=dict([(1,'a'),(2,'b'),(3,'c')])print("遍历所有的键:",end='')forkeyincounts:print(key,end=',')print("\n遍历所有的值:",end='')forvalueincounts.values():print(value,end=',')

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论