Python程序设计基础-Chap08-字典.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Python程序设计基础-Chap08-字典.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 程序设计 基础 Chap08 字典
- 资源描述:
-
1、内容提纲内容提纲8.1 什么是字典2 28.2 字典的创建和使用3 38.3 字典的基本操作4 43 35 58.4 字典的格式化字符串1 18.5 字典的实例应用引例v引例 假设有一种表格,第一列表示学号,第二列表示学号所对应的学生姓名,它们的关系一一对应 现在想查找学号是20170001的学生,我们从表中对应的第二列,就能很方便地知道该学生的姓名是“张三”,如右表:20170001张三20170002李四20170003王五20170004赵六8.1 什么是字典什么是字典v 字典是Python语言中唯一的映射类型。映射类型对象里哈希值和指向的对象,通常被认为是可变的哈希表。字典对象是可变的
2、,它是一个容器类型,能存储任意个数的Python对象,其中也可包括其他容器类型。v 字典是Python中最强大的数据类型之一,它与列表、元组等其他序列类型的主要区别有以下几点。v(1)存取和访问数据的方式不同。v(2)映射类型中的数据是无序排列的。这和序列类型是不一样的,序列类型是以数值序排列的。v(3)映射类型用键直接“映射”到值。v(4)字典支持索引操作(索引值为键值),但不支持切片操作,因为切片操作是针对索引值具有连续性,而字典的键不具备连续性。v(5)字典中的键必须不可变且不重复,值可以是任何类型。8.2 字典的创建和使用字典的创建和使用v 字典就是用花括号包裹的键值对的集合(键值对有
3、时也被称作项或元素)。在字典的创建过程中,要注意以下几点。v(1)键与值之间用冒号“:”分开;v(2)项与项之间用逗号“,”分开;v(3)字典中的键必须是唯一的,而值可以不唯一。8.2 字典的创建和使用字典的创建和使用v 8.2.1 直接创建字典v 创建一个空的字典:v mydict=#创建一个空的字典v mydict#输出此字典的内容v v 可知结果为空的。v 创建一个与引例相对应的字典:v student=20170001:张三,20170002:李四,/v 20170003:王五,20170004:赵六,8.2 字典的创建和使用字典的创建和使用v 8.2.2 通过dict函数创建字典v
4、dict函数是字典类的构造函数,也可以利用此函数来创建字典。v 创建一个空字典:v dict()v v 还可以传入键值对创建字典。v dict(a=1,b=2,c=3)v b:2,a:1,c:3v 可以传入映射函数创建字典。v dict(zip(a,b,1,2)v b:2,a:18.2 字典的创建和使用字典的创建和使用v 8.2.2 通过dict函数创建字典v dict函数是字典类的构造函数,也可以利用此函数来创建字典。v 创建一个空字典:v dict()v v 还可以传入键值对创建字典。v dict(a=1,b=2,c=3)v b:2,a:1,c:3v 可以传入映射函数创建字典。v dict
5、(zip(a,b,1,2)v b:2,a:18.2 字典的创建和使用字典的创建和使用v 还可以传入可迭代对象创建字典。v dict(a,1),(b,2)v b:2,a:1v 另外,也可以用dict函数,对字典进行如下操作:v mydict=b:2,a:1,c:3#定义一个字典mydictv a=dict(mydict)#将mydict作为dict函数的参数v print(a)#输出字典av b:2,a:1,c:3v 在创建完一个字典后,可以利用len函数来获取字典的长度,也就是获取该字典中键值对的个数。下面求字典mydict的长度。v len(mydict)v 3v 得到的结果为3,说明此字典
6、中包含了3个键值对。8.2 字典的创建和使用字典的创建和使用v 8.2.3 字典的修改和删除v 修改字典中已存在元素的值,操作如下:v dict=Name:huang,Age:20,Class:10v dictAge=30;#将键Age所对应的值改为30v dictv Class:10,Age:30,Name:huangv 在实际操作过程中,还可以向字典添加元素(必须同时添加键值对),方法如下:v dictSchool=GDPU;#增加新的元素v dictv Class:10,Age:30,Name:huang,School:GDPUv 可以看到,新增加的键值对School:GDPU已经成为字
7、典的一个元素。8.2 字典的创建和使用字典的创建和使用v 当要想删除字典中的其一个元素时,用del 多了一个空格就行,其用法为缺少标点符号v del dictName;#删除键是Name的元素v dictv Class:10,Age:30,School:GDPUv 从输出的结果可知,键为Name的元素已不在字典中了。还可以用dict.clear()来清空词典所有元素。v dict.clear()v dictv 格式错乱,跑到阴影框的外面了v 可知执行此操作后,字典为空。clear是一个原地操作的方法,使得dict中的内容全部被置空,里面所有的元素将被清除,成为一个空的字典。8.2 字典的创建和
8、使用字典的创建和使用v 8.2.3 字典的遍历v 字典是一种特殊的集合,因此可以循环操作对其进行遍历。一般来说,对字典的遍历有如下几种形式。v 为了便于讲述,可以先建立一个字典。v mydict=Name:huang,Age:20,Class:10v 建议把这段移动到开头位置,否则,把“如下几种形式”和后面的几种形式给断开了1遍历字典的key(键)v for i in mydict:v print(i)v 输出结果为:v Classv Agev Name8.2 字典的创建和使用字典的创建和使用v 2遍历字典的value(值)v for i in mydict.values():vprint(i
9、)v 结果为:v 10v 20v Huangv 可知,values()函数是对字典元素的值进行操作的,此程序中的变量i变量i是否要斜体?全书要统一一下对应字典中的每个元素的值。8.2 字典的创建和使用字典的创建和使用v 3遍历字典的项(元素)v for i in mydict.items():vprint(i)v 输出结果为字典的所有元素:v(Class,10)v(Age,20)v(Name,huang)v 此程序中的变量i对应字典中的元素(包括健和值)8.2 字典的创建和使用字典的创建和使用v 4遍历字典的key-valuev for i,j in mydict.items():vprint
10、(i,j)v 输出结果如下:v Class 10v Age 20v Name huangv 此程序中的变量i对应字典的键,变量j对应字典的值。8.3 字典的基本操作字典的基本操作v 8.3.1 get函数:访问字典成员v get()函数根据key获取值。v d=one:1,two:2,three:3v print(d.get(two)v 2v print(d.get(four)#字典d中没有four这个键v 输出结果为:v None8.3 字典的基本操作字典的基本操作v get函数可以访问字典中不存在的键,当该键不存在时返回None,读者可以参看前面所讲的用索引的方式来获取值,当键不存在时,系
11、统会报错,这是两种方法获取字典元素值的区别。建议大家在从字典取值时,多用get()函数。8.3 字典的基本操作字典的基本操作v 8.3.2 copy函数:返回一个具有相同键值的新字典v x=one:1,two:2,three:3,test:a,b,c#创建一个字典xv print(x)#输出字典xv one:1,two:2,test:a,b,c,three:3v y=x.copy()#用copy函数,将字典x复制到字典y中v print(y)#输出字典yv one:1,two:2,test:a,b,c,three:38.3 字典的基本操作字典的基本操作v 可以看到,用copy函数复制后,字典x
12、和字典y具有相同的元素(键值对),y是x的一个副本。再看下面的操作:v ythree=33#将字典y中键为 three的元素值改为33v print(y)v one:1,two:2,test:a,b,c,three:33v 从输出结果中,可以看到已经成功修改。此时,再来看看字典x的情况。v print(x)v one:1,two:2,test:a,b,c,three:3v 当修改副本字典y中的值时,不会对原字典x产生影响。下面再做如下操作:v ytest.remove(c)v yv one:1,two:2,test:a,b,three:3v xv one:1,two:2,test:a,b,th
展开阅读全文