《06_1字典ppt课件.pptx》由会员分享,可在线阅读,更多相关《06_1字典ppt课件.pptx(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、在此输入您的封面副标题06_1字典字典杭州师范大学杭州师范大学 虞歌虞歌 第第2页页Python程序设计基础程序设计基础字典和集合字典和集合杭州师范大学杭州师范大学 虞歌虞歌 第第3页页Python程序设计基础程序设计基础字典和集合字典和集合字典字典是存储键是存储键/值对数据的映射类型。值对数据的映射类型。字典字典中的每个元素是一个键中的每个元素是一个键/值对,元素之间没有顺序关系。键是关键字,值对,元素之间没有顺序关系。键是关键字,值是与关键字相关的,一个键对应一个值。通过键可以访问与其关联的值,值是与关键字相关的,一个键对应一个值。通过键可以访问与其关联的值,反之则不行。反之则不行。字典字
2、典中的每个元素的键必须是惟一的,不能重复,值可以重复中的每个元素的键必须是惟一的,不能重复,值可以重复。字典是字典是可变对象可变对象。字典中的每个元素的键必须是任何。字典中的每个元素的键必须是任何可哈希可哈希(hash)对象。)对象。整数、浮点数、布尔值、字符串、元组等都是可哈希对象,列表等都是非可整数、浮点数、布尔值、字符串、元组等都是可哈希对象,列表等都是非可哈希对象哈希对象。字典字典中的元素是依据中的元素是依据哈希码哈希码来放置的。哈希码是根据可哈希对象的值计算出来放置的。哈希码是根据可哈希对象的值计算出来的一个惟一值。来的一个惟一值。杭州师范大学杭州师范大学 虞歌虞歌 第第4页页Pyt
3、hon程序设计基础程序设计基础字典和集合字典和集合字典字典中的键中的键/值对用逗号分隔并且由一对花括号(值对用逗号分隔并且由一对花括号()括住。每个键)括住。每个键/值对由值对由一个关键字,然后跟着一个冒号,再跟着一个值组成一个关键字,然后跟着一个冒号,再跟着一个值组成。杭州师范大学杭州师范大学 虞歌虞歌 第第5页页Python程序设计基础程序设计基础字典和集合字典和集合还可以使用还可以使用dict内置函数来创建字典。内置函数来创建字典。 杭州师范大学杭州师范大学 虞歌虞歌 第第6页页Python程序设计基础程序设计基础字典和集合字典和集合一一个不包含任何元素的字典被称为空字典;可以用空的花括
4、号个不包含任何元素的字典被称为空字典;可以用空的花括号或或dict()创建一创建一个空字典个空字典。注意:在注意:在Python 3.6之前之前,字典的键是,字典的键是无序的。从无序的。从Python 3.6开始,字典是有序开始,字典是有序字典了,键会按照插入的顺序排列字典了,键会按照插入的顺序排列。杭州师范大学杭州师范大学 虞歌虞歌 第第7页页Python程序设计基础程序设计基础字典和集合字典和集合使用内置函数。使用内置函数。hash函数判断一个对象是否可以作为字典的键,若可以,返回一个整数值(哈函数判断一个对象是否可以作为字典的键,若可以,返回一个整数值(哈希码),否则抛出希码),否则抛出
5、“TypeError”异常。两异常。两个对象有相同的值,它们个对象有相同的值,它们hash函数返函数返回值也相等。回值也相等。杭州师范大学杭州师范大学 虞歌虞歌 第第8页页Python程序设计基础程序设计基础字典和集合字典和集合运算符。运算符。使用使用in或或not in运算符判断一个键是否在字典中。运算符判断一个键是否在字典中。使用使用is或或is not运算符判断两个字典是否是同一个对象。运算符判断两个字典是否是同一个对象。杭州师范大学杭州师范大学 虞歌虞歌 第第9页页Python程序设计基础程序设计基础字典和集合字典和集合使用使用关系运算符关系运算符=和和!=判断两个字典是否包含相同的键
6、判断两个字典是否包含相同的键/值对。下面例子中,尽值对。下面例子中,尽管管dict1和和dict2的键的键/值对顺序不同,但是这两个字典包含相同的键值对顺序不同,但是这两个字典包含相同的键/值对。值对。杭州师范大学杭州师范大学 虞歌虞歌 第第10页页Python程序设计基础程序设计基础字典和集合字典和集合从从字典中删除键字典中删除键/值值对。对。使用使用pop(key)方法删除字典中键方法删除字典中键key对应的键对应的键/值对并返回它的值,若键不存在,值对并返回它的值,若键不存在,抛出抛出“KeyError”异常。异常。杭州师范大学杭州师范大学 虞歌虞歌 第第11页页Python程序设计基础
7、程序设计基础字典和集合字典和集合使用使用popitem方法删除并返回字典中的一个键方法删除并返回字典中的一个键/值对,若字典为空,抛出值对,若字典为空,抛出“KeyError”异常。异常。杭州师范大学杭州师范大学 虞歌虞歌 第第12页页Python程序设计基础程序设计基础字典和集合字典和集合使用使用del语句来删除字典中的键语句来删除字典中的键/值对,若键不存在,会导致值对,若键不存在,会导致“KeyError”异常异常。杭州师范大学杭州师范大学 虞歌虞歌 第第13页页Python程序设计基础程序设计基础字典和集合字典和集合del语句也可以删除整个字典语句也可以删除整个字典。使用使用clear
8、方法删除字典中所有的键方法删除字典中所有的键/值对。值对。杭州师范大学杭州师范大学 虞歌虞歌 第第14页页Python程序设计基础程序设计基础字典和集合字典和集合合并字典。合并字典。使用使用update方法合并字典。方法合并字典。杭州师范大学杭州师范大学 虞歌虞歌 第第15页页Python程序设计基础程序设计基础字典和集合字典和集合update方法可以有多个参数。方法可以有多个参数。第二个参数前面必须有*,表示字典解包。杭州师范大学杭州师范大学 虞歌虞歌 第第16页页Python程序设计基础程序设计基础字典和集合字典和集合还还可以使用如下方法合并修改字典。可以使用如下方法合并修改字典。杭州师范
9、大学杭州师范大学 虞歌虞歌 第第17页页Python程序设计基础程序设计基础字典和集合字典和集合字典解析。字典解析。字典字典解析提供了一种创建字典的简洁方式解析提供了一种创建字典的简洁方式。一个字典解析由花括号组成。花括号内包含后跟一个一个字典解析由花括号组成。花括号内包含后跟一个for子句的表达式,之后是子句的表达式,之后是0或多个或多个for子句或子句或if子句。字典解析产生一个由表达式求值结果组成的字典子句。字典解析产生一个由表达式求值结果组成的字典。 key_expr:value_expr for iter_var in iterable首先循环首先循环iterable里所有内容,每一
10、次循环,都把里所有内容,每一次循环,都把iterable里相应内容放到里相应内容放到iter_var中,再在中,再在key_expr和和value_expr中应用该中应用该iter_var的内容,最后的内容,最后用用 key_expr:value_expr的计算值生成一个字典的计算值生成一个字典。 key_expr:value_expr for iter_var in iterable if cond_expr加入了判断语句,只有满足条件的才把加入了判断语句,只有满足条件的才把iterable里相应内容放到里相应内容放到iter_var中,再在中,再在key_expr和和value_expr中
11、应用该中应用该iter_var的内容,最后用的内容,最后用key_expr:value_expr的计的计算值生成一个字典。算值生成一个字典。字典字典dict1添加了一个键值添加了一个键值对对purple:6,更改了更改了键键red和和blue对应对应的的值值杭州师范大学杭州师范大学 虞歌虞歌 第第18页页Python程序设计基础程序设计基础字典和集合字典和集合杭州师范大学杭州师范大学 虞歌虞歌 第第19页页Python程序设计基础程序设计基础字典和集合字典和集合其他其他常用字典常用字典方法。方法。keys方法获取字典的所有键。返回由所有键构成的一个可迭代对象方法获取字典的所有键。返回由所有键构
12、成的一个可迭代对象dict_keys。values方法获取字典的所有值。返回由所有值构成的一个可迭代对象方法获取字典的所有值。返回由所有值构成的一个可迭代对象dict_values。items方法获取字典的所有键方法获取字典的所有键/值对。返回由所有键值对。返回由所有键/值对构成的一个可迭代对象值对构成的一个可迭代对象dict_items,每一个键,每一个键/值对都以元组形式返回值对都以元组形式返回。杭州师范大学杭州师范大学 虞歌虞歌 第第20页页Python程序设计基础程序设计基础字典和集合字典和集合fromkeys方法:第一方法:第一个参数是字典的键;第二个参数是键对应的值,可选,若个参数
13、是字典的键;第二个参数是键对应的值,可选,若不提供,默认是不提供,默认是None。创建并返回一个具有相同值的字典。创建并返回一个具有相同值的字典。setdefault方法:方法:第一个参数是字典的键;第二个参数是键对应的值,可选,若第一个参数是字典的键;第二个参数是键对应的值,可选,若不提供,默认是不提供,默认是None。对在字典中的键,返回对应值;对不在字典中的键,新。对在字典中的键,返回对应值;对不在字典中的键,新建键建键/值对,返回对应值。值对,返回对应值。杭州师范大学杭州师范大学 虞歌虞歌 第第21页页Python程序设计基础程序设计基础字典和集合字典和集合和列表一样。和列表一样。为了
14、避免可变对象之间使用为了避免可变对象之间使用=赋值存在的关联性问题。使用赋值存在的关联性问题。使用copy方方法进行法进行“浅复制浅复制”。杭州师范大学杭州师范大学 虞歌虞歌 第第22页页Python程序设计基础程序设计基础字典和集合字典和集合遍历字典。遍历字典。遍历字典中的所有键。遍历字典中的所有键。遍历字典中的所有值。遍历字典中的所有值。遍历字典中的所有键遍历字典中的所有键/值对。值对。杭州师范大学杭州师范大学 虞歌虞歌 第第23页页Python程序设计基础程序设计基础字典和集合字典和集合编写编写程序,输入若干个整数,整数之间以空格间隔,统计每个输入整数的出程序,输入若干个整数,整数之间以空格间隔,统计每个输入整数的出现次数。分行升序输出每个整数及其出现次数现次数。分行升序输出每个整数及其出现次数整数整数作为键,出现次数作为对应的值,构成一个键作为键,出现次数作为对应的值,构成一个键/值对值对。字典。字典存储键存储键/值对值对。通过列表解析,将整数存放在列表中。对每一个整数,若整数作为键已经在字典中,则出现次数加1;否则给字典新增一个键/值对,键为整数,值为出现次数1。将字典转换为列表,即(整数, 出现次数), (整数, 出现次数), 。并按整数升序排序。