专题八 Python字典(讲义)-《Python程序设计》职教高考备考讲练测(安徽省)

2025-04-01
| 8页
| 71人阅读
| 0人下载
精品

内容正文:

专题八 Python 字典 [考纲要求] 1.了解字典的键值对特性 2.掌握字典的创建 3.掌握字典键值对查询、修改、删除、添加 4.掌握字典的函数 [课时安排] 2课时 [知识梳理] 字典 字典的定义 字典(dict)是由一组键(key)及与其对应的值构成的,键与对应的值之间用冒号分隔,键与值放置在一对花括号内。在同一个字典中,键与值之间存在一一对应的关系(映射关系)。键的作用相当于索引,每个键对应的值就是数据。字典属于可变数据类型,在字典中的值可以包含任何数据类型。 字典的语法结构: 字典名={键1:值1,键2:值2,键3:值3…} 创建字典 1. 创建空字典 方法1:将空字典赋值给变量 dict1 = {} 方法2:使用dict()函数创建 dict2 = dict() 2. 创建非空字典 通过dict()函数创建,dict()函数需要传入列表且列表内的元素是元组的形式 dict2 = dict([("name", "张三"), ("age", 18)]) print(dict2) # {'name': '张三', 'age': 18} 将'键=值'的形式传入dict()函数内,需要注意的是键不能使用引号 dict3 = dict(name="张三", age=18) print(dict3) # {'name': '张三', 'age': 18} 通过dict()函数将列表、元组、集合转为字典 >>> lst=[(1,2),(3,4),(5,6)] >>> dict(lst) {1: 2, 3: 4, 5: 6} >>> tup1=((1,2),(3,4),(5,6)) >>> dict(tup1) {1: 2, 3: 4, 5: 6} >>> set1={(1,2),(3,4)} >>> dict(set1) {1: 2, 3: 4} 字典的特性 1. 键必须是不可变的数据类型,且不可变数据的内部也不能包含可变的数据类型。 >>> dic1={"name":"张三","age":18} >>> dic1 {'name': '张三', 'age': 18} >>> dic2={[1,2]:"张三",'age':18} Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'list' 可变的数据类型:列表、字典、集合(可变集合) 不可变的数据类型:数值、字符串、元组 2. 键是唯一的,不能重复。如果创建字典时键重复了,后面重复的键和值,会覆盖前面的键值对。 dict1 = {"name": "张三", "age": 18, "name": "李四"} print(dict1["name"]) # 李四 3. 字典的键值对是无序的,因此不支持索引(字典里面是通过键取到对应的值)和切片 >>> dic={1:2,3:4} >>> dic[1:3] Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'slice’ 总结:字典的键遵循集合的三大特征 但是字典的值可以是任意的数据类型,也可以重复。不受任何限制 字典的基本操作 1.访问字典的值 字典对象[“键”] dict1 = {"name": "张三", "age": 18} print(dict1["name"]) # 张三 当字典的键是元组时 dict1 = {('name', "姓名"): '张三', 'age': 18} print(dict1[('name', "姓名")]) # 张三 # 也可以使用元组内的元素(不推荐) print(dict1['name', "姓名"]) # 张三 当字典的值是列表、元组、字典时 字典的值是元组时 dict1 = {'name': '张三', 'age': 18, 'info': (180, 75)} print(dict1["info"][0]) # 180 字典的值是列表时 dict1 = {'name': '张三', 'age': 18, 'info': [180, 75]} print(dict1["info"][1]) # 75 # 字典的值是字典时 dict1 = {'name': '张三', 'age': 18, 'info': {"height": 180, "weight": 75}} print(dict1["info"]["height"]) # 180 2.修改字典的值 字典对象[“键”]=新的值 dict1 = {"name": "张三", "age": 18} dict1["age"]=19 print(dict1) # {'name': '张三', 'age': 19} 字典的值是元组时 dict1 = {'name': '张三', 'age': 18, 'info': (180, 75)} dict1["info"] = (185, 75) # 将元组看成整体 print(dict1) 不能使用dict1["info"][0]=185来修改 字典的值是列表时 dict1 = {'name': '张三', 'age': 18, 'info': [180, 75]} dict1["info"][0]=185 print(dict1["info"]) # [185, 75] 字典的值是字典时 dict1 = {'name': '张三', 'age': 18, 'info': {"height": 180, "weight": 75}} dict1["info"]["height"] = 185 print(dict1["info"]) # {'height': 185, 'weight': 75} 如果字典的值是不可变的数据类型就不能修改,不可变的数据类型不能修改的。 3.增加字典的键值对 字典对象[“新的键”]=新的值 dict1 = {"name": "张三", "age": 18} dict1["weight"] = 75 print(dict1) # {'name': '张三', 'age': 18, 'weight': 75} 4.删除字典的键值对 del 字典对象[“键”] dict1 = {'name': '张三', 'age': 18, 'weight': 75} del dict1["weight"] print(dict1) # {'name': '张三', 'age': 18} 字典的操作函数 1.dict.keys( ) 用于获取dict中所有键(可迭代对象) >>> dic1={"name":"张三","age":18} >>> dic1.keys() dict_keys(['name', 'age']) >>> list(dic1.keys()) # [‘name’,’age’] 2.dict.values() 用于获取dict中所有值(可迭代对象) >>> dic1={"name":"张三","age":18} >>> dic1.values() dict_values(['张三', 18]) 3.dict.items() 用于获取dict中所有的(键,值)元组(可迭代对象) >>> dic1={"name":"张三","age":18} >>> dic1.items() dict_items([('name', '张三'), ('age', 18)]) 4.dict.get(key[,value]) 用于从dict中获取键为key对应的值,如果dict中存在key就会返回key对应的值,如果不存在key,则会返回None,如果给定了value,就会返回给的value值 >>> dic={1:2,3:4,5:6} >>> dic.get(3,7) 4 >>> dic.get(6,7) 7 >>> dic.get(6) # 不指定值则默认返回None值 5.dict.clear()用于删除字典dict中的所有元素使dict变成一个空字典 >>> dic={1:2,3:4,5:6} >>> dic.clear() >>> dic {} 6.dict.setdefault(key[,value]).如果字典dict中存在key,则该方法返回key对应的值,否则在字典dict中添加key:value,并返回value的值,value默认为None >>> dic={1:2,3:4,5:6} >>> dic.setdefault(3,7) 4 >>> dic.setdefault(6,7) 7 >>> print(dic) {1: 2, 3: 4, 5: 6, 6: 7} 7.dict.update(dict2) 用于将字典dict2中的元素添加到字典dict中 >>> dic={1:2,3:4} >>> dic.update({3:5}) >>> dic {1: 2, 3: 5} >>> dic.update({6:7}) >>> dic {1: 2, 3: 5, 6: 7} 检查键是否存在于字典中 每个键及其对应的值就是字典中的一个元素,可以使用in运算符检测键是否存在于字典中。例如: >>> dict1={1:"A",2:"B",3:"C"} >>> 1 in dict1 True >>> 4 in dict1 False dic = {1: 2, 3: 4, 5: 6} print(1 in dic.values()) # False print(2 in dic.values()) # True print(3 in dic.keys()) # True print(5 in dic.items()) # 5 in [(1,2),(3,4),(5,6)] --> False 获取键的列表和字典长度 dict1 = {'name': '张三', 'age': 18, "height": 180, "weight": 75} 使用列表的函数list()可以将字典的键转为列表等价于 字典对象.keys( ) print(list(dict1)) # ['name', 'age', 'height', 'weight'] print(list(dict1.keys())) # ['name', 'age', 'height', 'weight'] 如果想获取字典的值组成的列表,就需要使用 字典对象.values( )来获取 print(list(dict1.values())) # ['张三', 18, 180, 75] 如果想获取字典的键值组成的列表,就需要使用 字典对象.items( )来获取 print(list(dict1.items())) # [('name', '张三'), ('age', 18), ('height', 180), ('weight', 75)] 使用函数len( )获取字典的长度。一个键值对为一个元素 print(len(dict1)) # 4 [限时练习] 1.下面代码的运行结果__________ lst=[(1,2),(3,4)] print(dict(lst)) 【答案】{1: 2, 3: 4} 【解析】通过dict()函数将列表里面的二元组转为键值对 2. print(dict(w=1,h=2))的运行结果__________ 【答案】{'w': 1, 'h': 2} 【解析】将"键=值"的数据类型转为键值对 3.下面代码的运行结果__________ dic={1:2,3:4,5:6} print(dic.keys()) 【答案】dict_keys([1, 3, 5]) 【解析】获取字典的键,返回的是dict_keys对象 4.下面代码的运行结果__________ dic={1:2,3:4,5:6} print(dic.values()) 【答案】dict_values([2, 4, 6]) 【解析】获取字典的值,返回的是dict_values对象 5.下面代码的运行结果__________ dic={1:2,3:4,5:6} print(dic.items()) 【答案】dict_items([(1, 2), (3, 4), (5, 6)]) 【解析】获取字典的键值对,返回的是dict_items对象 6.下面代码的运行结果__________ dic={1:2,3:4,5:6} print(dic.get(7)) 【答案】None 【解析】7不在字典的键里面,因此返回后面的值,未指定值则默认返回None。 7.下面代码的运行结果__________ dic={1:2,3:4} dic.clear() print(dic) 【答案】{} 【解析】清空字典的键值对 8.下面代码的运行结果__________ dic={1:2,3:4} dic.setdefault(5,6) print(dic) 【答案】{1: 2, 3: 4, 5: 6} 【解析】setdefault()函数与get()函数几乎相同,唯一不同的是键不在字典内,则会将键值对添加到字典里面 9.下面代码的运行结果__________ dic={1:2,3:4} dic.update({3:5}) print(dic) 【答案】{1: 2, 3: 5} 【解析】dic.update(dic1)函数,若dic1里面的键在dic里面则会更新对应的值 10.下面代码的运行结果__________ dic={1:2,3:4} dic.update({5:6}) print(dic) 【答案】{1: 2, 3: 4, 5: 6} 【解析】dic.update(dic1)函数,若dic1里面的键不在dic里面则会添加到字典dic里面 11.下面代码的运行结果__________ dic={1:2,3:4,5:6} print(dic.get(1,4)+dic.get(6,7)) 【答案】9 【解析】dic.get(1,4)由于1在字典dic里面,因此返回2 dic.get(6,7)由于6不在字典dic里面,因此返回后面指定的值7 最后的结果为9 12.下面代码的运行结果__________ dic={"name":"张三","age":18} dic['age']=19 dic['height']=180 print(dic) 【答案】{'name': '张三', 'age': 19, 'height': 180} 【解析】dic['age']=19将键age对应的值改为19,dic['height']=180添加新的键值对 [归纳小结] 学科网(北京)股份有限公司 $$

资源预览图

专题八 Python字典(讲义)-《Python程序设计》职教高考备考讲练测(安徽省)
1
专题八 Python字典(讲义)-《Python程序设计》职教高考备考讲练测(安徽省)
2
专题八 Python字典(讲义)-《Python程序设计》职教高考备考讲练测(安徽省)
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。