版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章字典和集合《Python程序开发案例教程(第2版))》学习目标/Target
掌握字典的创建方式,能够使用{}和dict()函数创建字典掌握访问字典的方式,能够通过键访问字典中其对应的值掌握字典元素的添加和修改方式,能够通过update()方法或字典的键添加或修改元素掌握字典元素的删除方式,能够根据需求选择合适的方法从字典中删除元素学习目标/Target
掌握字典元素的查询方式,能够通过items()、keys()、values()方法查询字典的
所有元素、所有键和所有值掌握集合的创建方式,能够使用{}和set()函数创建集合掌握集合元素的基本操作,能够添加、删除和清空集合的元素熟悉集合操作符的用法,能够通过操作符对集合进行联合、取交集、差补和
对称差分操作章节概述/Summary除了之前章节介绍的数据类型,Python还提供了两种实用且强大的数据类型,分别是字典和集合。字典通过键值对(key-value)的形式存储数据,大大提高了数据查找的效率;而集合作为无序且不包含重复数据的类型,它为处理数据唯一性提供了简洁便捷的方法。因此,字典和集合在解决许多实际问题时发挥着重要作用。本章将带大家学习字典和集合这两种类型。目录/Contents01认识字典02字典的基本操作03集合的创建方式04集合操作与操作符认识字典5.1
先定一个小目标!掌握字典的创建方式,能够使用{}和dict()函数创建字典5.1.1字典的创建方式字典的创建方式使用中括号“{}”创建列表使用dict()函数创建字典格式:{键1:值1,键2:值2,...}{'name':'小明','age':21,'address':'北京'}使用大括号“{}”创建字典时,大括号中可以包含零个、一个或多个键值对,每个键值对视为字典的一个元素,多个键值对之间使用逗号分隔。格式:dict(键1=值1,键2=值2,...)dict(name='小明',age=21,address='北京')使用dict()函数创建字典时,键和值使用“=”进行连接。5.1.1字典的创建方式字典的创建方式5.1.1字典的创建方式需要注意的是,字典中的键是唯一的,若使用dict()函数创建字典时出现重复的键,则会直接提示语法错误;若使用大括号创建字典时出现重复的键,则键对应的值会被覆盖。
先定一个小目标!掌握访问字典的方式,能够通过键访问字典中其对应的值5.1.2通过键访问字典通过键访问字典因为字典中的键是唯一的,所以可以通过键获取对应的值。通过键访问字典的语法格式如下:字典[键]语法格式5.1.2通过键访问字典例如,创建一个包含三个键值对的字典,分别通过键获取其对应的值color_dict={'purple':'紫色','green':'绿色','black':'黑色'}print(color_dict['purple'])#获取键为purple对应的值print(color_dict['green'])#获取键为green对应的值print(color_dict['black'])#获取键为black对应的值通过键访问字典当通过键访问字典时,如果字典中不存在这个键,则会导致程序出现报错信息。例如,通过不存在的键red访问字典color_dict。5.1.2通过键访问字典print(color_dict['red'])
先定一个小目标!根据任务分析实现实例1:单词识别5.1.3实例1:单词识别周一到周日的英文依次为Monday、Tuesday、Wednesday、Thusday、Fridday、Saturday和Sunday,这些单词的首字母基本都不相同,在这7个单词的范围之内,通过第一或前两个字母即可判断对应的是哪个单词。本实例要求编写程序,实现根据第一或前两个字母输出Monday、Tuesday、Wednesday、Thusday、Fridday、Saturday和Sunday之中完整单词的功能。5.1.3实例1:单词识别使用字典保存字母与星期映射关系。接收用户输入表示星期的第一个字母,并转换为小写形式。判断用户输入的字母是否正确。根据输入的字母将输入的数字作为索引,从列表中获取中奖信息。实现思路5.1.3实例1:单词识别在Chapter05项目中创建01_word.py文件。在01_word.py中编写代码。运行01_word.py文件。实现步骤5.1.3实例1:单词识别字典的基本操作5.2
先定一个小目标!掌握字典元素的添加和修改方式,能够通过update()方法或字典的键添加或修改元素5.2.1字典元素的添加和修改5.2.1字典元素的添加和修改添加字典元素Python中可以使用update()方法或通过指定的键给字典添加元素或者修改字典的元素,如果指定的键存在,则会修改其对应的值;如果指定的键不存在,则会在字典中添加元素。添加字典元素添加字典元素是在字典中添加一个新的键值对,键不能与字典中的其他键重复。add_dict={'stu1':'小明'}add_dict.update(stu2='小刚') #使用update()方法添加元素add_dict['stu3']='小兰' #通过指定键添加元素print(add_dict)5.2.1字典元素的添加和修改修改字典元素修改字典元素是通过已存在的键获取元素,再对元素重新赋值。modify_dict={'stu1':'小明','stu2':'小刚','stu3':'小兰'}modify_dict.update(stu2='小强') #使用update()方法修改元素modify_dict['stu3']='小婷' #通过指定键修改元素5.2.1字典元素的添加和修改
先定一个小目标!掌握字典元素的删除方式,能够根据需求选择合适的方法从字典中删除元素5.2.2字典元素的删除pop()方法(1)pop()方法pop()方法可根据指定键删除字典中的指定元素,若删除成功,该方法返回目标元素的值。5.2.2字典元素的删除per_info={'001':'张三','002':'李四','003':'王五','004':'赵六',}print(per_info.pop('001'))#使用pop()删除键为001的元素print(per_info)popitem()方法(2)popitem()方法popitem()方法用于从字典中随机删除一个元素,该方法之所以能随机删除元素,是因为字典的元素本身是无序的,没有所谓的“第一项”“最后一项”等。若删除成功,popitem()方法会以元组的形式返回目标元素。5.2.2字典元素的删除per_info={'001':'张三','002':'李四','003':'王五','004':'赵六'}print(per_info.popitem())#使用popitem()方法随机删除元素print(per_info)clear()方法(3)clear()方法clear()方法用于清空字典中的元素。5.2.2字典元素的删除per_info={'001':'张三','002':'李四','003':'王五','004':'赵六',}per_info.clear()#使用clear()方法清空字典中的元素print(per_info)
先定一个小目标!掌握字典元素的查询方式,能够通过items()、keys()、values()方法查询字典的所有元素、所有键和所有值5.2.3字典元素的查询查询字典的所有元素(1)items()方法使用items()方法可以查询字典的所有元素。per_info={'001':'张三','002':'李四','003':'王五'}print(per_info.items())5.2.3字典元素的查询查询字典的所有元素(1)items()方法items()方法返回一个dict_items对象,该对象支持迭代操作,我们可以通过for语句遍历dict_items对象中的数据,并将这些数据以(键,值)的形式显示。per_info={'001':'张三','002':'李四','003':'王五'}foriinper_info.items():print(i)5.2.3字典元素的查询查询字典的所有键(2)keys()方法使用keys()方法可以查看字典的所有键。per_info={'001':'张三','002':'李四','003':'王五'}print(per_info.keys())5.2.3字典元素的查询查询字典的所有键(2)keys()方法keys()方法会返回一个dict_keys对象,该对象也支持迭代操作,我们可以通过for语句遍历输出字典中所有的键。per_info={'001':'张三','002':'李四','003':'王五'}foriinper_info.keys():print(i)5.2.3字典元素的查询查询字典的所有值(3)values()方法values()方法返回字典中所有的值。per_info={'001':'张三','002':'李四','003':'王五','004':'赵六',}print(per_info.values())5.2.3字典元素的查询查询字典的所有值(3)values()方法values()方法会返回一个dict_values对象,该对象支持迭代操作,我们可以通过for语句遍历输出字典中所有的值。per_info={'001':'张三','002':'李四','003':'王五'}foriinper_info.values():print(i)5.2.3字典元素的查询
先定一个小目标!根据任务分析实现实例2:手机通讯录5.2.4实例2:手机通讯录随着社交网络的飞速发展和人际交往的频繁性,我们常常需要与许多人保持联系,并且随时随地能够找到他们的联系方式。手机通讯录是存储和管理联系人信息的工具,方便用户随时查找联系人的联系方式、邮箱、地址等信息,也支持添加联系人、修改联系人、删除联系人、查看通讯录等基本功能。5.2.4实例2:手机通讯录手机通讯录中包含6个功能,每个功能都对应一个序号,用户可以选择序号来要求通讯录执行相应的操作,具体如下。(1)添加联系人:用户根据提示依次输入姓名、手机号、邮箱和地址,输入完成后提示“保存成功”。注意,若用户输入的信息为空会提示“请输入正确信息”。(2)查看通讯录:按固定的格式输出通讯录每个联系人的信息。若通讯录中还没有添加过联系人,提示“通讯录无信息”。(3)删除联系人:用户根据提示输入待删除的联系人姓名,若该联系人存在于通讯录中,则提示“删除成功”,否则提示“该联系人不在通讯录中”。注意,若通讯录中还没有添加过联系人,提示“通讯录无信息”。(4)修改联系人:用户根据提示输入要修改联系人的姓名,之后按照提示分别输入该联系人的新姓名、新手机号、新邮箱、新地址,并输出修改后的联系人信息。注意,若通讯录中还没有添加过联系人,提示“通讯录无信息”。(5)查找联系人:用户根据提示输入联系人的姓名,若该联系人存在于通讯录中,则输出该联系人的所有信息,否则提示“该联系人不在通讯录中”。注意,若通讯录中还没有添加过联系人提示“通讯录无信息”。(6)退出:退出手机通讯录。本实例要求编写程序,模拟实现如上所述的好友管理系统。5.2.4实例2:手机通讯录使用列表保存价格信息。定义空列表用于保存用户选购商品的价格。接收输入的最大价格和最小价格。从价格列表中获取每个商品价格。判断商品价格区间。将商品价格进行排序。实现思路5.2.4实例2:手机通讯录在Chapter05项目中创建02_address_book.py文件。在02_address_book.py中编写代码。运行02_address_book.py文件。实现步骤5.2.4实例2:手机通讯录集合的创建方式5.3
先定一个小目标!掌握集合的创建方式,能够使用{}和set()函数创建集合5.3集合的创建方式使用大括号”{}”创建集合当使用大括号“{}”创建集合时,可以直接在大括号内包含一个或多个元素,多个元素之间会使用逗号分隔。如果大括号中有重复元素,则会自动去除重复元素。set_one={'Python'}#创建包含一个元素的集合set_two={0.3,1,'Python'}#创建包含多个元素的集合set_three={0.3,1,1,'Python'}#创建包含多个元素的集合,有重复元素print(set_one)print(set_two)print(set_three)5.3集合的创建方式使用set()函数创建集合使用set()函数同样可以创建集合,set()函数必须接收一个可迭代对象,它会将可迭代对象中的元素作为集合的初始元素,并自动去除重复的元素,如此便可以创建一个没有重复元素的集合。set_one=set([1,1,2,3])#根据列表创建集合set_two=set((2,3,4))#根据元组创建集合set_three=set('Hello')#根据字符串创建集合set_four=set()
#创建空集合print(set_one)print(set_two)print(set_three)print(set_four)5.3集合的创建方式集合操作与操作符5.4
先定一个小目标!掌握集合元素的基本操作,能够添加、删除和清空集合的元素5.4.1集合元素的添加、删除和清空添加元素5.4.1集合元素的添加、删除和清空
add(元素)update(可迭代对象)语法格式add()或update()方法用于向集合中添加元素,不同的是,add()方法一次只能添加一个元素,而update()方法一次可以添加多个元素。demo_set=set()demo_set.add('py')#使用add()方法向集合中添加一个元素'py'demo_set.update('thon')#使用update()方法向集合中添加多个元素demo_set.add('py')#使用add()方法向集合中再次添加'py'print(demo_set)因为集合不能包含重复元素,所以当使用add()或update()方法向集合内添加元素时,若当前集合已经存在这个元素,则不会进行添加操作。添加元素5.4.1集合元素的添加、删除和清空删除元素(1)remove()方法remove()方法用于删除集合中的指定元素,若指定的元素不在集合中,则会导致程序出现KeyError错误,示例代码如下。remove_set={'red','green','black'}remove_set.remove('red')#删除指定元素,该元素在集合中print(remove_set)remove_set.remove('blue')#删除指定元素,该元素不在集合中print(remove_set)5.4.1集合元素的添加、删除和清空删除元素(2)discard()方法discard()方法也可以删除指定的元素,但若指定的元素不存在,该方法不执行任何操作,示例代码如下。discard_set={'python','php','java'}discard_set.discard('java')#删除指定元素,该元素在集合中discard_set.discard('ios')#删除指定元素,该元素不在集合中print(discard_set)5.4.1集合元素的添加、删除和清空删除元素(3)clear()方法如果需要清空集合中的元素,那么可以使用clear()方法实现,示例代码如下。clear_set={'red','green','black'}clear_set.clear()#清空集合中的所有元素print(clear_set)5.4.1集合元素的添加、删除和清空
先定一个小目标!熟悉集合操作符的用法,能够通过操作符对集合进行联合、取交集、差补和对称差分操作5.4.2集合类型的操作符Python支持通过操作符|、&、-、^对两个集合进行联合、交集、差补和对称差分操作。已知有set_a={'a','c'}和set_b={'b','c'},使用阴影部分表示这两个集合执行联合、交集、差补和对称差分操作的结果。5.4.2集合类型的操作符操作符“|”(1)操作符“|”操作符“|”用于对两个集合进行联合操作,将两个集合的所有元素合并成一个新的集合,示例代码如下。set_a={'a','c'}set_b={'b','c'}print(set_a|set_b)#使用|操作符对两个集合进行联合操作5.4.2集合类型的操作符操作符“&”(2)操作符“&”操作符“&”用于对两个集合进行交集操作,将两个集合中共有的元素提取为一个新集合,示例代码如下。set_a={'a','c'}set_b={'b','c'}print(set_a&set_b)#使用&操作符对两个集合进行交集操作5.4.2集合类型的操作符操作符“-”(3)操作符“-”操作符“-”用于对两个集合进行差补操作,将只属于一个集合或者只属于另一个集合的元素组成新的集合,示例代码如下。set_a={'a','c'}set_b={'b','c'}print(set_a-set_b)#使用-操作符获取只属于集合set_a的元素print(set_b-set_a)#使用-操作符获取只属于集合set_b的元素5.4.2集合类型的操作符操作符“^”(4)操作符“^”操作符“^”用于对两个集合进行对称差分操作,将只属于集合set_a与只属于集合set_b中元素组成一个新集合,示例代码如下。set_a={'a','c'}set_b={'b','c'}print(set_a^set_b)#使用^操作符获取只属于set_a和只属于set_b的元素5.4.2集合类型的操作符列表、元组、字典和集合的区别列表、元组、字典和集合都是相对复杂的数据类型,它们都拥有不同的特点,下面分别从可变性、唯
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 西南交通大学《数字图像处理与计算机视觉含实验》2023-2024学年第一学期期末试卷
- 2024年01月11340古代小说戏曲专题期末试题答案
- 西华大学《家居用品设计与开发》2021-2022学年第一学期期末试卷
- 西北大学《油画半身肖像写生》2022-2023学年第一学期期末试卷
- 西北大学《书法》2022-2023学年第一学期期末试卷
- 安徽家园铝业有限公司铝加工生产工艺能量系统优化节能技改项目可行性研究报告
- 如何写好景物课件
- 《做个职场成功者》课件
- 《个人所得税法解读》课件
- 2025年中国特种机器人行业市场现状及投资态势分析报告(智研咨询)
- 早产儿保健管理
- 评标专家及评标员管理办法
- aecopd护理查房课件
- TCECS 720-2020 钢板桩支护技术规程
- 自杀防范和案应急
- 中考作文备考:“此时无声胜有声”(附写作指导与佳作示例)
- TSG 81-2022 场(厂)内专用机动车辆安全技术规程
- 新概念英语第二册课件Lesson33(共15张PPT)
- 新生儿肠内营养PPT课件(PPT 73页)
- (部编版)-六年级语文上册第七单元【集体备课】课件
- 挡土墙(各种挡墙做法讲解培训稿精品PPT课件.ppt
评论
0/150
提交评论