ImageVerifierCode 换一换
格式:PDF , 页数:35 ,大小:1.98MB ,
资源ID:231319      下载积分:15 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/231319.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(Python程序设计基础 Chap08 字典.pdf)为本站上传会员【曲****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Python程序设计基础 Chap08 字典.pdf

1、内衮提纲8.1 什么是字典8.2 字典的创建和使用8.3 字典的基本操作8.4 字典的格式化字符串8.5 字典的实例应用O引例。引例假设有一种表格,第一列 表示学号,第二列表示学 号所对应的学生姓名,它 们的关系一一对应现在想查找学号是 20170001的学生,我们 从表中对应的第二列,就 能很方便地知道该学生的 姓名是“张三”,如右表:20170001张三20170002李四20170003王五20170004赵六8.1什么是字典 字典是Python语言中唯一的映射类型。映射类型对象里哈希值 和指向的对象,通常被认为是可变的哈希表。字典对象是可变 的,它是一个容器类型,能存储任意个数的Pyt

2、hon对象,其中 也可包括其他容器类型。字典是Python中最强大的数据类型之一,它与列表、元组等其 他序列类型的主要区别有以下几点。(1)存取和访问数据的方式不同。(2)映射类型中的数据是无序排列的。这和序列类型是不一 样的,序列类型是以数值序排列的。(3)映射类型用键直接映射到值。(4)字典支持索引操作(索引值为键值),但不支持切片操 作,因为切片操作是针对索引值具有连续性,而字典的键不具 备连续性。:(5)字典中的键必须不可变且不重复,值可以是任何类型。字典就是用花括号。包裹的键值对的集合(键值对有时也被称作项或元素)o在字典的创建过程中,要注意以下几点。(1)键与值之间用冒号:分开;(

3、2)项与项之间用逗号,分开;:(3)字典中的键必须是唯一的,而值可以不唯一。8.2.1直接创建字典创建一个空的字典:mydict=#创建一个空的字典 mydict#输出此字典的内容:可知结果为空的。创建一个与引例相对应的字典:student=ZODOOOl:1 张三NOrZOOOZ:1 李四 20170003(王五,20170004:赵六,8.2.2通过diet函数创建字典 diet函数是字典类的构造函数,也可以利用此函数来创建字典 创建一个空字典:dict():还可以传入键值对创建字典。dict(a=l,b=2,c=3)2,言:1,E 3可以传入映射函数创建字典。dict(zip(ablL2

4、)fb1:2,宣:1 8.2.2通过diet函数创建字典 diet函数是字典类的构造函数,也可以利用此函数来创建字典 创建一个空字典:dict():还可以传入键值对创建字典。dict(a=l,b=2,c=3)2,言:1,E 3可以传入映射函数创建字典。dict(zip(ablL2)fb1:2,宣:1:dict(Cal/l)/Cb;2)b:2,a:1另外,也可以用diet函数,对字典进行如下操作:mydict=bl 2Z a:1,c:3)#定义一个字典mydict a=dict(mydict)mydict作为diet函数的参数 print(a)#输出字典afb1:2,a1:L 3在创建完一个字典

5、后,可以利用len函数来获取字典的长度,也 就是获取该字典中键值对的个数。下面家字典myd ict的长虚 len(mydict)3 得到的结果为3,说明此字典中包含了3个键值对。领先的智慧教育云服务提供商Wisdom Education Cloud8.2字典的创建和使3 8.2.3字典的修改和删除:修改字典中已存在元素的值,操作如下:diet=Name:huang,Age:20,Class:10 dictAge=30;#将键Age所对应的值改为30 diet Class:10,Age:30,Name:huang在实际操作过程中,还可以向字典添加元素(必须同时添加键 值对),方法如下:dictr

6、SchooP=GDPU;#增加新的元素 diet Class:10丁Age:30,Name:uang;School1:GDPU 可以看到,新增加的键值对5che)or:,GDPU已经成为字典的 一个元素。偏丽I领先的智慧教育云g冬鼠服务提供商小口 下Wisdom Education Cloud8.2字典的创建和使仁当要想删除字典中的其一个元素时,用del 多了一个空格就行,其用法为缺少标点符号 del dicUName;#删除键是Name的元素 diet Class:10丁Age:30z School:GDPU从输出的结果可知,键为Name的元素已不在字典中了。还可 以用diet,clear。

7、来清空词典所有元素。dict.clear()diet*格式错乱,跑到阴影框的外面了可知执行此操作后,字典为空。clear是一个原地操作的方法,使得diet中的内容全部被置空,里面所有的元素将被清除,成 为一个空的字典。字典是一种特殊的集合,因此可以循环操作对其进行遍历。一 般来说,对字典的遍历有如下几种形式。为了便于讲述,可以先建立一个字典。mydict=Name:huang,Age:20,Class:IO1:建议把这段移动到开头位置,否则,把如下几种形式和后 面的几种形式给断开了 1.遍历字典的key(键)for i in mydict:print(i):输出结果为:Class Age Na

8、me领先的智慧教育云服务提供商Wisdom Education CloudF 2,遍历字典的value(值)*for i in mydict.valuesQ:8-2字典的创建和使print(i)结果为:1020Huang可知,values。函数是对字典元素的值进行操作的,此程序中 的变量i 变量i是否要斜体?全书要统一一下对应字典中的每个 元素的值。领先的智慧教育云服务提供商Wisdom Education Cloud3 3,遍历字典的项(元素)8.2字典的创建和使 for i in mydict.items():print(i):输出结果为字典的所有元素:(Class;10)CAge;20)

9、NameJhuang)此程序中的变量i对应字典中的元素(包括健和值)领先的智慧教育云服务提供商Wisdom Education Cloudm 4.遍历字典的key-value。for ij in mydict.items():82字典的创建和使 print(ij):输出结果如下:Class 10 Age 20 Name huang此程序中的变量i对应字典的键,变量j对应字典的值。领先的智慧教育云服务提供商Wisdom Education Cloud3 8.3.1 get函数:访问字典成员 get()函数根据key获取值。d=,one,:lz,two,:2/three,:38.3字典的基本操彳

10、 print(d.get(,two,)2 print(d.get(,four,)#字典d中没有four这个键:输出结果为:None领先的智慧教育云服务提供商Wisdom Education Cloud8.3字典的基本操彳口5 get函数可以访问字典中不存在的键,当该键不存在时返None,读者可以参看前面所讲的用索引的方式来获取值,当 键不存在时,系统会报错,这是两种方法获取字典元素值的区 别。建议大家在从字典取值时,多用get()函数。领先的智慧教育云服务提供商Wisdom Education Cloud5 8.3.2 copy函数:返回一个具有相同键值的新字典 x=,one,:lz,two,

11、2z,three,:3z,test,:,a,z,b,z,c,#创建个字典X8.3字典的基本操彳 print(x)#输出字典x*one:1,two:2,test:aJbJcl three:3:y=x.copyO#用8丫函数,将字典X复制到字典y中 print(y)#输出字典y one:1,two:2,test:aJbJcl three:3陶繇领先的智慧教育云g冬萌服务提供商小口 干Wisdom Education Cloud8.3字典的基本操彳F可以看到,用copy函数复制后,字典x和字典y具有相同的元素(键值对),y是x的一个副本。再看下面的操作:ythree=33#将字典y中键为廿ree的

12、元素值改为33 print(y)one:1,two:2Z test:aJbJc,廿ree:33从输出结果中,可以看到已经成功修改。此时,再来看看字典x的情况。print(x)one:1,two:2,test:9,b,c,廿ree:3当修改副本字典y中的值时,不会对原字典x产生影响。下面再做如下操作:yrtestl.removeCc)*y one:1,two:2,test:az bz three:3 x one:1,two:2,test:az bz three:3大家从输出结果可以看到,副本的操作影响到了原始字典。在复制的副本中 对值进行替换后,对原来的字典不产生影响,但是如果修改了副本(如增、

13、删操作),原始的字典也会被修改。deepcopy函数使用深复制,复制其包 含所有的值,这个方法可以解决由于副本修改而使原始字典也变化的问题。deepcopy函数在使用前要导入,语法如下:from copy import deepcopy z=deepcopy(x)#使用deepcopy函数深度复制,注意与copy函数的区 别 x one:1,two:2,test:9,b,c,廿ree:3 z one:1,two:2,test:9,b,c1,廿ree:3 8.3.3 pop函数:删除字典中对应的键 pop函数可以删除字典中的键及其对应的值。d=,one,:l/two,:2/three,:3 d.

14、pop(two)#删除键two 2 print(d)one:1,three:3运算结果显示键two,及其对应的值都从字典中删除了。83.4 romkeys函数:用给定的键建立新的字典:.fromkeys函数可以用给定的键建立新的字典,键默认对应的值为None。d=dict.fromkeys(,one,z,two,z,three,)print(d):输出::one:None,two:None,three:None:可见,fromkeys函数用给定的键值one,two,three,建立了一个新的字典,但 是每个键所对应的值为Noneo 8.3.5 setdefault函数:获取与给定键相关联的值类

15、似于get方法,获取与给定键相关联的值,也可以在字 典中不包含给定键的情况下设定相应的键值。d=,one,:lz,two,:2/three,:3 d.setdefault(four,4):.4 print(d)运算结果:*four:4,one:1,two:2,three:3 8.3.6 update函数:用一个字典更新另外一个字典 update函数可以用一个字典来更新另外一个字典。操作如下:*d=one:123,two:2,three:3 print(d)one:123,two:2,three:3 8.3.7关键字in的应用:在前面所学的章节中,我们已经对in关键字有了一定的认识,在字典中,可

16、以用in关键字进行如下操作。创建一个字典d:d=one:123,two:2,廿 ree:3)1.用in关键字检查key是否存在 one in d.keys()True one是字典d中的一个键,所以返回True five in d.keys()False five,不是字典d的键,所以返回False2.用in关键字检查value是否存在 1 in d.values()True 1是字典d中的一个值,所以返回True 5 in d.values()False 5不是字典d的值,所以返回Fa Ise。I领先的智慧教育云g冬届服务提供商Wisdom Education Cloud8.4字典的格式化字

17、符串在前面的学习中,我们知道格式化字符串时,Python使 用一个字符串作为模板。模板中有格式符,这些格式符为 真实值预留位置,并说明真实数值应该呈现的格式。Python可以用一个元组将多个值传递给模板,每个值对 应一格式符。print(,I,m%s.Em%d years old%(huang,20):输出结果为:Fm huang.Fm 20 years old:还可以通过字典格式化字符串,Python中内置有对字符 串进行格式化的操作,在每个转换说明符中的字符后 面,加上键(要用圆括号括起来),后面再跟上其他说明 元素。只要所有给出的键都能在字典中找到,就可以获得 任意数量的转换说明符。te

18、mple=Tm%(name)s,rm%(age)d.%(name)s is a student,he is%(age)dn student=name:huang,age:20 print(temple%student):输出结果为:Fm huangjm 20.huang is a student,he is 20领先的智慧教育云g冬端服务提供商八口 干Wisdom Education Cloud8.5字典的排序*:*8.5字典的排序 Python中的字典反映的是一种映射关系,它在存储过程 中是无序的,所以输出字典内容时也是无序的。在实际应 用过程中,有时需要对字典进行一定程度的排序。Pytho

19、n中字典的排序分为按键排序和按值排序 o下面分别进行讲述。这里创建一个字典d:d=ok:l,no:2,huang,:12,gg,:ll,hh,:13 print(d)no:2,gg:llz huang:12z hh:13z ok:1 从输出结果可看到,字典的输出是没有顺序的。福翱领先的智慧教育云目服务提供商Wisdom Education Cloud98.5字典的排序 8.5.1 sorted函数按key值对字典排序 现在,要对字典d按键进行排序,前提是,d的键是可排 序的,我们查看字典d的键,都是字符串类型,因此是可 以进行排序的。执行以下操作:sorted(d.keysQ)gg,hh,hu

20、ang,no,ok可知得到的是一个由字典所有键组成的一个列表序列。并 没有反映出字典的映射关系。*:*再执行以下程序:sorted(d.itemsO)(gg,11),(hh,13),(huang,12),(no,2),(ok,1)领先的智慧教育云g冬端服务提供商八口 干Wisdom Education Cloud8.5字典的排序:8.5.2 sorted函数按value值对字典排序.:对字典中的value进行排序,前提是value的类型是可排序的。对字典 的value排序需要用到key参数,如果要对字典d按值的降序排列,进 行如下操作:sorted.items。,key=lambda e:el

21、z reverse=True)(hh,13),Chuang,12),Cgg,z 11),(no1,2)z Cok;1):这里的d.items。实际上是将d转换为可迭代对象,迭代对象的元素为 Chh,z 13)z Chuang;12),Cgg;11),(no;2),(。匕 1)z items。方法 将字典的元素转化为了元组,而这里key参数对应的lambda表达式:lambda e:el的意思则是选取元组中的第二个元素作为比较参数,所以采用这种方法可以对字典的va I ue进行排序。注意排序后的返回 值是一个列表,而原字典中的键值对被转换为了list中的元组。领先的智慧教育云g冬端服务提供商八口

22、 干Wisdom Education Cloud8.5字典的排序:8.5.2 sorted函数按value值对字典排序.:对字典中的value进行排序,前提是value的类型是可排序的。对字典 的value排序需要用到key参数,如果要对字典d按值的降序排列,进 行如下操作:sorted.items。,key=lambda e:elz reverse=True)(hh,13),Chuang,12),Cgg,z 11),(no1,2)z Cok;1):这里的d.items。实际上是将d转换为可迭代对象,迭代对象的元素为 Chh,z 13)z Chuang;12),Cgg;11),(no;2),(

23、匕 1)z items。方法 将字典的元素转化为了元组,而这里key参数对应的lambda表达式:lambda e:el的意思则是选取元组中的第二个元素作为比较参数,所以采用这种方法可以对字典的va I ue进行排序。注意排序后的返回 值是一个列表,而原字典中的键值对被转换为了list中的元组。前好I领先的智慧教育云g义赣服务提供商八,口 Wisdom Education Cloud8.6字典的实例应用.【例8-1】读取一个英文文档,实现以下功能。(1)输出文档中出现的所有字母,并统计每个字母出现的次数。(2)输出文档中所有的单词,并找到出现频率最高的十个单词。(程序设计过程中,忽略字母的大

24、小写)分析:(1)读取文件,用到。pen函数,假设现在在Python的安装目录下 有英文文档,文件名为englishText.txt(2)文件成功读取之后,要完成各英文字母的统计,我们知道,英 文字母一共是26个,有以下方案可以实现。生成26个变量,每个变量对应一个字母,当读取过程中,出现某 个字母时,其对应的变量增加1。这种设计可以完成对字母的统计,但过程比较烦琐,大家可自行完成。生成一个具有26个元素的列表,将每个字母转化为相应的索引值,比如a-0,b-l,c-2z-25,当出现某个字母时,其索引对应 的值加1,这样也可以完成对字母的统计。I领先的智慧教育云g冬整服务提供商小Wisdom

25、Education Cloud8.6字典的实例应用喋立一个tf.py文件,程序代码如下:1.testFile=open(englishText.txtzr)#读取文件:2.zi=testFile.read()#read。函数是以单个字符的方式来返回:3.lis=*26#新建一个有26个元素的列表 4.for i in zi:5.if i.isalphaO:#判断读取的字符是否为字母:6.x=i.lower()#将读取的字母转化为小写:7.lisord(x)-9 7+=l#将列表的索引值与字母的ASCH码对应起来8.print(lis):9.testFile.close():输出结果为:47,18,14,18,69,12,13,22,23,1,7,29,15,38,59,9,1,26,46,31,14,4,9,0,14,0:从结果可以知道,字母a出现了47次,字母b出现了 18次,字母z出现了0次O:本章主要对Python中的字典进行了详细的 介绍,字典是Python中最强大的数据类型 之一,本章讲解了什么是字典、创建字典和为字典赋值、字典的基本操作、映射类型操作符、映射相关的函数、字典的方法等内容;并通过应用举例,深化字典的应用。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服