版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模块4字典和集合学习目标掌握映射类型的特点掌握字典的创建及基本操作能应用字典解决实际问题了解集合类型的特点掌握集合的创建及基本操作任务4-1使用字典处理劳动之星选票数据字典推导式21创建字典34目录访问字典元的值,遍历字典添加、修改、删除字典的元素任务3-1创建与操作祖国名胜列表计算机应用专业劳动之星选票情况如表4-1所示。编程完成以下任务要求,程序名为LaborStar.py。姓名张新洪李志强赵国庆党泽华曾强胜刘靖英票数2530835812表4-1劳动之星选票任务概述(1)请将劳动之星选票结果以字典形式保存,字典名为votes,姓名为键,对应票数为值;
(2)输出党泽华同学的票数;
(3)将字典中赵国庆同学的票数更改为18;
(4)接收用户输入的一个学生姓名,如该学生姓名在字典votes中,则票数增加1;如不在,增加新的键值对到字典votes中,键为学生姓名,值为1(即票数为1)(5)接收用户输入的一个要删除的学生姓名,从字典中删除该学生相关信息,并输出该同学的选票数,如字典中没有该同学信息,则显示“没有某某某的选票信息”。
(6)分别输出字典votes中所有键、所有值及所有键值对信息相关知识1.程序代码"""程序名:places.py程序功能:应用列表数据类型管理用户渴望去的旅游景点清单"""places_list=['长城','布达拉宫','故宫','敦煌莫高窟','苏州园林']print(f"最渴望去的旅游景点:{places_list}")n=len(places_list)print(f'列表元素个数为:{n}')print(f"列表中第1个和最后1个地名是:{places_list[0]},{places_list[n-1]}")print(f"列表中第1个和最后1个地名是:{places_list[-n]},{places_list[-1]}")print(F'表中第2个至第4个元是:{places_list[1:4]}')places_list[1]='天安门'print(places_list)2.1.3相关知识1、创建字典(dictionary)每一对键值对称为字典的一个元素(或一个项),元素间用逗号分隔字典(dictionary)是由0个或多个键值对组成的映射类型,键key和值value间用冒号(:)连接元素个数无限制,所有元素由花括号{}括起来。{'name':'赵明','ID':'202201','sex':0,'age':10}字典的键必须是不可改变数据类型(1)创建字典使用{}
或dict()函数可创建字典使用{}创建字典的语法格式如下:{key1:value1,key2:value2:key3:value3,……}一对{}里面没有任何键值对,称为空字典(2)使用dict()函数创建字典dict(mapping)参数mapping省略时,创建一空字典,mapping是形如(key,value)的对象>>>test=dict()>>>test{}>>>items=[('rose',90),('jack',100),('tom',85)]>>>student=dict(items)>>>student{'rose':90,'jack':100,'tom':85}(3)利用dict()函数和zip()函数将两个列表(或元组)转换为字典zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将这些可迭代对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的zip对象。>>>name=('张明','李华','赵红')>>>votes=[18,15,30]>>>zip(name,votes)<zipobjectat0x00000172E871D280>>>>dict(zip(name,votes))#使用dict()函数将zip对象转换为字典{'张明':18,'李华':15,'赵红':30}>>>list(zip(name,votes))#使用list()函数将zip对象转换为列表[('张明',18),('李华',15),('赵红',30)]2.字典推导式格式1:{key的表达式:value的表达式for变量in迭代对象}格式2:{key的表达式:value的表达式for变量in迭代对象if条件}利用字典推导式创建字典效率很高2.字典推导式>>>d={x:x*xforxinrange(10)}>>>d{0:0,1:1,2:4,3:9,4:16,5:25,6:36,7:49,8:64,9:81}>>>d={k:vfork,vinzip(range(2,10,2),range(10,100,10))}>>>d{2:10,4:20,6:30,8:40}2.访问和修改列表元素可以通过索引(index)或切片来访问和修改列表的元素。(1)使用索引访问和修改列表元素。访问元素:列表[index]修改列表元素:列表[index]=value3.访问字典中的值访问字典中的值:DictObject[key]如键key在字典DictObject中存在,则返回对应的值value;如key不存在,则显示KeyError错误信息。4.使用get()方法访问字典中的值调用格式如下:DictObject.get(key[,n])5.添加或修改字典中的键值对DictObject[key]=value如果key在字典对象DictObject中存在,则修改该key对应的值为value;如果key不存在,则字典DictObject增加新的键值对key:value。>>>votes={'张明':18,'李华':15,'赵红':30}>>>votes['曾强']=0
#增加新键值对>>>votes
{'张明':18,'李华':15,'赵红':30,'曾强':0}6.删除字典元素(1)使用del命令delDictObject[key])#删除字典DictObject中键key对应的键值对delDictObject #删除整个字典DictObject6.删除字典元素(2)pop()方法delDictObject[key])#删除字典DictObject中键key对应的键值对delDictObject #删除整个字典DictObject6.删除字典元素(3)popitem()方法DictObject.popitem()popitem()方法是随机删除一对键值对,并以元组形式返回被删除的键值对。(4)clear()方法。DictObject.clear()clear()方法是清空字典中的键值对,将字典变为空字典。7.获取字典中的键、值或键值对的方法方法功能D.keys()返回一个可迭代对象,该对象包含了字典D中所有的键信息D.values()返回一个可迭代对象,该对象包含了字典D的所有值信息D.items()返回一个可迭代对象,该对象包含了字典D的所有键值对信息8.遍历字典中的键、值或键值对>>>award={'乒乓球':'李明','拳击':'张华','举重':'李越','跳水':'曾文'}>>>foriinaward:#遍历字典即遍历字典所有的键
print(i,end=';')遍历字典中的键foriinD:print(i)遍历字典中的键foriinD.keys():print(i)8.遍历字典中的键、值或键值对>>>award={'乒乓球':'李明','拳击':'张华','举重':'李越','跳水':'曾文'}>>>foriinaward.items():#遍历字典即遍历字典所有的键值对
print(i,end=';')遍历字典中的键值对foriinD.items():print(i)8.遍历字典中的键、值或键值对>>>award={'乒乓球':'李明','拳击':'张华','举重':'李越','跳水':'曾文'}>>>foriinaward.values():#遍历字典即遍历字典所有的值
print(i,end=';')遍历字典中的值foriinD.values():print(i)任务4-2应用集合处理学习标兵和劳动之星名单集合推导式21集合的创建34目录集合常用的运算符集合常用的运算符任务概述现有某专业的学习标兵学生名单和劳动之星名单,编程实现以下要求:学习标兵名单:曾强胜、张明、李红、曾志强、张华明、党泽华、刘靖英、赵国庆、蒋智华、黎昊阳。劳动之星名单:张新洪、李志强、赵国庆、党泽华、曾强胜、刘靖英、刘国英、王德华、黄爱国、曹文。(1)程序命名为honor.py:(2)学习标兵名单中增加刘志高同学,劳动之星名单中移除李志强同学。(3)输出只获得学习标兵称号的学生名单;(4)输出两种荣誉都获得的学生名单;(5)输出只获得一项荣誉的学生名单;(6)输出两种荣誉共表彰的学生人数;相关知识1.集合的创建集合(set)是一种可改变的无序的组合类型其元素必须是不可改变数据类型。所有元素是用花括号“{}”括起来各元素间逗号(半角逗号,)分隔,元素个数不限。1.集合的创建(1)使用{}创建集合。使用{}创建集合的语法格式如下:{element1,element2,element3,……}特别注意:{}表示空字典而不是空集合,空集合可以由set()函数创建1.集合的创建(2)使用set()函数创建集合。函数set(x)功能是将一个可迭代对象x(如列表、元组、字符串等)去除其中的重复元素,生成一个只包含每个元素均是唯一元素的集合。参数x是可迭代数据类型。举例:set()函数应用>>>ls=['湖南','湖北','河南','河北','广东','广西','河南','河北']>>>province=set(ls)#set()函数将列表转换为集合,使用这种方法可以去除列表中重复数据>>>print(province){'河南','湖南','湖北','广西','河北','广东'}>>>type(set())<class'set'>1.集合的创建(3)创建冻结集合。利用frozenset()函数可创建冻结集合,调用格式如下:frozenset(x)>>>st=frozenset([90,80,90])>>>print(st)frozenset({80,90})2.集合推导式集合推导式与列表推导式很像,用于创建具有某种规律的集合,只是将表列推导式前后的中括号改为花括号。格式1:{表达式for变量in迭代对象}格式2:{表达式for变量in迭代对象if条件}3.集合常用运算符运算符描述举例
a={10,20,30,40}
b={20,50,60}&交集,求两个集合交集a&b值为{20}|并集,求两个集合并集a|b值为{10,20,30,40,
50,60}-差集,求两个集合的差a-b值为{10,30,40}^异或,a
^
b求仅在a和仅在b的元素集合a^b值为{10,30,40,
50,60}4.集合常用方法方法名描述举例setA.interse
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工设备专业试题及参考作答
- 厂房钢结构屋架课程设计
- 变声警笛器课程设计
- 图像压缩DCT设计实验课程设计
- 基于RAG的本地知识问答平台开发课程设计
- 编译原理基础课程设计
- 送料装置技术方案课程设计
- 身份证OCR识别系统设计案例课程设计
- 多源数据城市交通拥堵预测算法课程设计
- 北京 课程设计 兼职
- 2025秋新版道德与法治三年级上册教学工作计划及教学进度表
- 2026秋小学人音版音乐二年级上册(新教材)教学计划
- 新版(2026秋新版)部编版五年级语文上册全册教案(教学设计)合集
- 2026年天津市安全员《C证》考试题库及答案(推-荐)
- 人工智能技术基础与应用课件 第8章 提示词工程
- 2026年秋苏教版数学二年级上册教学工作计划
- 2026年特种设备安全管理员试题(附答案)
- 服饰配件设计1课件
- 兽用化学药品注册资料要求形式审查要点及常见问题课件
- 施工升降机拆卸专项施工方案
- 八年级语文 课外现代文阅读专项训练(50篇含答案)
评论
0/150
提交评论