为什么需要字典
可以提供通过某个东西找到某个东西
""" 演示数据容器字典的定义 """ #定义字典 my_dict1={"王力宏":99,"周结论":88,"林俊杰":77} #定义空字典 my_dict2={} my_dict3=dict() print(f"字典1的内容是:{my_dict1},类型是:{type(my_dict1)}") print(f"字典2的内容是:{my_dict2},类型是:{type(my_dict2)}")
print(f"字典3的内容是:{my_dict3},类型是:{type(my_dict3)}")
定义重复Key的字典
很显然此时已经有黄色提醒了
#定义重复Key的字典 my_dict1={"王力宏":99,"王力宏":99,"林俊杰":77} print(f"重复Key的字典内容是:{my_dict1}")
运行后也发现,重复的内容也已经被去掉了,留下的内容是不重复的
字典数据的获取由key取到value
#从字典重基于key值获取value my_dict1={"王力宏":99,"周结论":88,"林俊杰":77} score=my_dict1["王力宏"] print(f"王力宏的考试分数是:{score}")
字典的嵌套
#定义嵌套字典 stu_score_dict={ "王力宏":{ "语文":77, "数学":66, "英语":55 } ,"周杰轮":{ "语文":88, "数学":86, "英语":55 },"林俊杰":{ "语文":99, "数学":96, "英语":66 } } print(f"学生的考试信息是:{stu_score_dict}")
#定义嵌套字典 stu_score_dict={ "王力宏":{ "语文":77, "数学":66, "英语":55 } ,"周杰轮":{ "语文":88, "数学":86, "英语":55 },"林俊杰":{ "语文":99, "数学":96, "英语":66 } } # print(f"学生的考试信息是:{stu_score_dict}") #从嵌套字典重获取数据 #看一下周杰伦的语文信息 score=stu_score_dict["周杰轮"]["语文"] print(f"周杰伦的语文成绩是:{score}")
数据容器(字典)–常用操作
新增元素-更新元素
""" 演示字典的常用操作 """ my_dict={"周结论":99,"林俊杰":88,"张学友":77} #新增元素 my_dict["张信者"]=66 print(f"字典新增元素后,结果:{my_dict}") #更新元素 my_dict["周结论"]=33 print(f"字典更新元素后,结果:{my_dict}")
删除元素-清空字典
#删除元素 my_dict={"周结论":99,"林俊杰":88,"张学友":77} score =my_dict.pop("周结论")#用pop取出周结论的成绩,同时还能删除key 和value print(f"字典中被移除一个元素后结果是:{my_dict},周结论的分数是:{score}")
#清空字典 my_dict={"周结论":99,"林俊杰":88,"张学友":77} my_dict.clear() print(f"字典清空后的结果为:{my_dict}")
获取全部的key
#获取全部的key my_dict={"周结论":99,"林俊杰":88,"张学友":77} keys=my_dict.keys() print(f"字典的全部keys是:{keys}")
获取全部的key能用来干什么?
遍历获取到key,而后依次通过key获取value
#遍历字典,通过key去取value my_dict={"周结论":99,"林俊杰":88,"张学友":77} keys=my_dict.keys() for key in keys: print(f"字典的key是:{key}") print(f"字典的value是:{my_dict[key]}")#用key对应的方法去取value
#遍历字典,通过key去取value,方式2:直接对字典进行for循环,每一次循环都是直接得到key my_dict={"周结论":99,"林俊杰":88,"张学友":77} for key in my_dict:#直接对字典进行取出 print(f"字典的key是:{key}") print(f"字典的value是:{my_dict[key]}")
两者效果一样。但是注意:字典不支持用下标索引,所以不能用while循环
统计字典内的元素数量len()
#统计字典内的元素数量,len()函数 my_dict={"周结论":99,"林俊杰":88,"张学友":77} num=len(my_dict) print(f"字典中的元素数量有:{num}个")
字典常用操作总结
字典的特点
字典课后练习题–升职加薪
""" 演示字典的课后练习,升职加薪,对所有级别为1的员工,级别上升1级,工资增加1000 """ #组织字典记录数据 info_dict={ "王力宏":{ "部门":"科技部", "工资":3000, "级别":1 }, "周杰伦":{ "部门":"市场部", "工资":5000, "级别":2 }, "林俊杰":{ "部门":"市场部", "工资":7000, "级别":3 }, "张学友":{ "部门":"科技部", "工资":4000, "级别":1 }, "刘德华":{ "部门":"市场部", "工资":6000, "级别":2 } } print(f"在员工升职加薪之前的结果是:{info_dict}") #for循环遍历字典 for name in info_dict: #if条件判断符合条件员工 if info_dict[name]["级别"]==1: #升职加薪操作 #获取到员工的信息字典 employee_info_dict=info_dict[name] #修改员工的信息字典 employee_info_dict["级别"]=2#级别+1 employee_info_dict["工资"]+=1000#工资+1000 #将员工的信息更新回info_dict info_dict[name]=employee_info_dict #输出结果 print(f"对员工进行升职加薪的结果是:{info_dict}")
级别从1到2,工资从1000升到2000