Python程序设计基础教程(微课版第2版)4.3 字典_第1页
Python程序设计基础教程(微课版第2版)4.3 字典_第2页
Python程序设计基础教程(微课版第2版)4.3 字典_第3页
Python程序设计基础教程(微课版第2版)4.3 字典_第4页
Python程序设计基础教程(微课版第2版)4.3 字典_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

字典是Python提供的一种常用的数据结构字

典CHAPTER4CONTENTS目

录01字典的创建与删除02访问字典03添加、修改和删除字典元素04字典推导式字

典一种常用的数据结构存放具有映射关系的数据字

典字

典语

文数

学英

语67分91分78分字

典字

典["语文","数学","英语"]

成绩列表

[67,91,78]

课程列表

无法记录两组数据关联关系字

典另一组数据可通过键来访问“值”(value)一组数据是关键数据“键”(key)字

典字

典字典的元素是“键值对”,程序需要通过键来访问值,字典中的键不允许重复,必须是唯一值,且键必须不可变字典不支持索引和切片,但可以通过“键”查询“值”字典是无序对象集合,列表是有序对象集合,两者区别是字典中的元素是通过键来存取,而不是通过偏移量存取字典是可变的,并且可以任意嵌套字典特性字

典字

{}

标识

{键值对1,键值对2,键值对...}

键与值之间用英文冒号隔开,多个键值对之间用英文逗号隔开字

典>>>grade={"语文":67,"数学":91,"英语":78}#键是字符串>>>grade{'语文':67,'数学':91,'英语':78}>>>empty_dict={}#创建一个空字典>>>empty_dict{}>>>dict1={(1,2):"male",(1,3):"female"}#键是元组>>>dict1{(1,2):'male',(1,3):'female'}

【例】

字典多个键值对之间用英文逗号隔开实例如下字

典列

表元

组可作为字典的键字典键是不可变类型不能作为字典的键列表是可变类型字

典>>>books=[('hadoop',132),('spark',563),('flink',211)]>>>dict1=dict(books)>>>dict1{'hadoop':132,'spark':563,'flink':211}>>>scores=[['计算机',85],['大数据',88],['Spark编程',89]]>>>dict2=dict(scores)>>>dict2{'计算机':85,'大数据':88,'Spark编程':89}dict()

创建字典字

典>>>dict3=dict(curriculum='计算机',grade=87)#通过指定参数创建字典>>>dict3{'curriculum':'计算机','grade':87}>>>keys=["语文","数学","英语"]>>>values=[67,91,78]字

典>>>dict4=dict(zip(keys,values))>>>dict4{'语文':67,'数学':91,'英语':78}>>>dict5=dict()#创建空字典>>>dict5{}dict()

创建字典字

典zip()函数

用于将可迭代的对象作为参数点击输入标题ResearchDesignDiscover点击输入标题BuildCode点击输入标题Deploy对象对象对象对象作为参数打包成一个个元组元组元组列表返回由元组组成的列表字

典>>>x=[1,2,3]>>>y=["a","b","c"]>>>zipped=zip(x,y)>>>zipped<zipobjectat0x0000000002CC9D40>>>>list(zipped)[(1,'a'),(2,'b'),(3,'c')]【例】zip()函数将可迭代对象作为参数字

典>>>grade={"语文":67,"数学":91,"英语":78}>>>delgradedel命令删除字

典clear()方法字

典清

空字

典>>>grade={"语文":67,"数学":91,"英语":78}>>>grade.clear()>>>grade{}clear()方法清空字

访问字典包含多个“键值对”键键是字典的关键数据,因此对字典的操作都是基于键的字

典字

典通过键访问值01通过键添加键值对02通过键删除键值对03通过键修改键值对04通过键判断指定键值对是否存在05

访问字典字

典字典通过键访问值列表通过索引访问值方括号语法索引法字

典指定的键不存在异

常抛

出字

典>>>grade={"语文":67,"数学":91,"英语":78}>>>grade["语文"]67>>>grade["计算机"]Traceback(mostrecentcalllast):File"<pyshell#9>",line1,in<module>grade["计算机"]KeyError:'计算机'字

典get()方法

dictname表示字典对象

key表示指定的键

default是可选项格式dictname.get(key[,default])

default默认值返回None当指定键不存在如果省略字

典>>>grade={"语文":67,"数学":91,"英语":78}>>>grade.get("数学")91>>>grade.get("英语","不存在该课程")78>>>grade.get("计算机","不存在该课程")'不存在该课程'>>>grade.get("计算机")>>>#执行结果返回None,屏幕上不可见使用字典对象的get()方法获取指定键的值实例字

典items()方法获取“键值对”列表keys()方法获取“键”列表values()方法获取“值”列表字

典>>>grade={"语文":67,"数学":91,"英语":78}>>>items=grade.items()>>>type(items)<class'dict_items'>>>>itemsdict_items([('语文',67),('数学',91),('英语',78)])>>>keys=grade.keys()>>>type(keys)<class'dict_keys'>>>>keysdict_keys(['语文','数学','英语'])>>>values=grade.values()>>>type(values)<class'dict_values'>>>>valuesdict_values([67,91,78])字

典dict_itemsitems()dict_keyskeys()dict_values对象values()Python不希望用户直接操作这几个方法,但可通过list()函数把它们转换成列表字

典>>>grade={"语文":67,"数学":91,"英语":78}>>>items=grade.items()>>>list(items)[('语文',67),('数学',91),('英语',78)]>>>keys=grade.keys()>>>list(keys)['语文','数学','英语']>>>values=grade.values()>>>list(values)[67,91,78]list()函数转换字

典>>>grade={"语文":67,"数学":91,"英语":78}>>>foritemingrade.items():print(item)('语文',67)('数学',91)('英语',78)>>>forkey,valueingrade.items(): print(key,value)语文67数学91英语78通过for循环对items()方法返回的结果进行遍历字

典>>>grade={"语文":67,"数学":91,"英语":78}>>>grade.pop("英语")78>>>grade{'语文':67,'数学':91}【例】pop()方法获取指定键对应的值实例字

典dictname[key]=value

添加、修改和删除字典元素字典是可变序列添加删除修改字

典dictname[key]=valuedictname表示字典对象的名称key要添加元素的键(字符串、数字或元组)value表示要添加的元素的值字

典>>>grade={"语文":67,"数学":91,"英语":78}>>>grade["计算机"]=93>>>grade{'语文':67,'数学':91,'英语':78,'计算机':93}列表中添加元素字

典修改字典对象元素赋予新值新值代替原来的旧值字

典>>>grade={"语文":67,"数学":91,"英语":78}>>>grade{'语文':67,'数学':91,'英语':78}>>>grade["语文"]=88>>>grade{'语文':88,'数学':91,'英语':78}字典中修改元素字

典不再需要字典中的某个元素时,用del命令将其删除>>>grade={"语文":67,"数学":91,"英语":78}>>>delgrade["英语"]>>>grade{'语文':67,'数学':91}字

典update()方法覆盖添加如果被更新的字典中己包含对应的键值对,那么原值会被覆盖如果被更新的字典中不包含对应的键值对,则该键值对被添加进去字

典>>>grade={"语文":67,"数学":91,"英语":78}>>>grade.update({"语文":59,"数学":91,"英语":78,"计算机":98})>>>grade{'语文':59,'数学':91,'英语':78,'计算机':98}update()方法字

字典推导式列表推导式元组推导式字典推导式使用字典推导式快速生成一个符合需求的字典字

典字

式{表达式for迭代变量in可迭代对象[if条件表达式]}用

[]

括起来的部分是可选项,可以省略区别于其它推导式语法格式,字典推导式用大括号{}字

典【例】

字典推导式具体实例如下>>>word_list=["hadoop","spark","hdfs"]>>>word_dict={key:len(key)forkeyinword_list}>>>word_dict{'hadoop':6,'spark':5,'hdfs':4}字

典【例】可以根据列表生成字典,具体实例如下>>>name=["张三","李四","王五","李六"]#名字列表>>>title=["教授","副教授","讲师","助教"]#职称列表>>>dict1={i:jfori,jinzip(name,title)}#字典推导式>>>dict1{'张三':'教授','李四':'副教授','王五':'讲师','李六':'助教'}字

典>>>olddict={"hadoop":6,"spark":5,"hdfs":4}>>>

温馨提示

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

评论

0/150

提交评论