字典也是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据。
比如有份成绩表数据,语文:79,数学:80,英语:92,这组数据看上去像两个列表,但这两个列表的元素之间有一定的关联关系。如果单纯使用两个列表来保存这组数据,则无法记录两组数据之间的关联关系。
为了保存具有映射关系的数据,Python 提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,被称为 key;另一组数据可通过 key 来访问,被称为 value。形象地看,字典中 key 和 value 的关联关系如图 1 所示:
由于字典中的 key 是非常关键的数据,而且程序需要通过 key 来访问 value,因此字典中的 key 不允许重复。
程序既可使用花括号语法来创建字典,也可使用 dict() 函数来创建字典。实际上,dict 是一种类型,它就是 Python 中的字典类型。
在使用花括号语法创建字典时,花括号中应包含多个 key-value 对,key 与 value 之间用英文冒号隔开;多个 key-value 对之间用英文逗号隔开。
二、字典的常用操作
编号 | 操作 | 说明 |
1 | 字典[key]=value | 添加或更新键值对 |
2 | 字典.pop(key) | 取出key对应的Value并在字典内删除此Key的键值对 |
3 | 字典.clear() | 清空字典 |
4 | 字典.keys() | 获取字典的全部key,可用于for循环遍历字典 |
5 | len(字典) | 计算字典内的元素数量 |
6 | 字典[key] | 获取指定key对应的value值 |
一、代码演示
1、新增元素
my_dict={"周杰伦":99,"林俊杰":88,"张学友":77}
# 新增元素
my_dict["张信哲"]=66
print(f"新增之后的元素为:{my_dict}")
2、更新元素
my_dict["周杰伦"]=85
print(f"字典经过更新后,元素为:{my_dict}")
3、删除元素
my_dict.pop("张信哲")
print(f"字典中被删除了一个元素,结果:{my_dict}")
4、清空元素
my_dict.clear()
print(f"元素被清空后的结果为:{my_dict}")
5、获取全部的key
my_dict={"周杰伦":99,"林俊杰":88,"张学友":77}
keys=my_dict.keys()
print(f"字典的全部key是:{keys}")
6、遍历字典
my_dict={"周杰伦":99,"林俊杰":88,"张学友":77}
for i in my_dict:
print(f"字典的key是:{i}")
print(f"字典的value是:{my_dict[i]}")
7、统计字典内的元素数量
# 统计字典内的元素数量
stu_score_dict={
"王力宏":{"语文":77,"数学":66,"英语":33},"周杰伦":{"语文":99,"数学":96,"英语":95},"林俊杰":{"语文":88,"数学":86,"英语":85}
}
count=len(stu_score_dict)
print(f"字典内的元素数量为:{count}")
三、字典的随堂小练习
有如下员工信息,请使用字典完成数据的记录 并通过for循环,对所有级别为1级的员工,级别上升一级,薪水增加1000元
姓名 部门 工资 级别 王力宏 科技部 3000 1 周杰伦 市场部 5000 2 林俊杰 市场部 7000 3 张学友 科技部 4000 1 刘德华 市场部 6000 2
"""
有如下员工信息,请使用字典完成数据的记录
并通过for循环,对所有级别为1级的员工,级别上升一级,薪水增加1000元
姓名 部门 工资 级别
王力宏 科技部 3000 1
周杰伦 市场部 5000 2
林俊杰 市场部 7000 3
张学友 科技部 4000 1
刘德华 市场部 6000 2
"""
dict_info={
"王力宏":{"部门":"科技部","工资":3000,"级别":1},
"周杰伦":{"部门":"市场部","工资":5000,"级别":2},
"林俊杰":{"部门":"市场部","工资":7000,"级别":3},
"张学友":{"部门":"科技部","工资":4000,"级别":1},
"刘德华":{"部门":"市场部","工资":6000,"级别":2}
}
print(f"全体员工当前信息如下")
print(dict_info)
print(f"全体员工级别为1的员工完成升职加薪操作,操作后:")
# for循环遍历字典
for name in dict_info:
# if条件判断符合条件员工
if dict_info[name]["级别"]==1:
# 修改员工的信息
dict_info[name]["级别"]+=1
dict_info[name]["工资"]+=1000
print(dict_info)