数据容器:dict(字典、映射)
1.字典的应用
字典可以提供基于Key检索Value的场景实现
2.字典的定义
my_dict = {key:value, key:value,...key:value,}
# 定义字典
my_dict1 = {"欣欣": 100, "嘉嘉": 99, "周周": 88}
# 定义空字典
my_dict2 = {} # 空集合set()
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)}")
# 字典1的内容是:{'欣欣': 100, '嘉嘉': 99, '周周': 88}, 类型是:<class 'dict'>
# 字典2的内容是:{}, 类型是:<class 'dict'>
# 字典3的内容是:{}, 类型是:<class 'dict'>
# 定义重复Key的字典
my_dict1 = {"欣欣": 100, "欣欣": 99, "周周": 88}
print(f"重复Key的字典的内容是:{my_dict1}")
# 重复Key的字典的内容是:{'欣欣': 99, '周周': 88}
3.字典数据的获取
字典同集合一样,不可以使用下标索引,但是字典可以通过key值来取得对应的value。
my_dict1 = {"欣欣": 100, "嘉嘉": 99, "周周": 88}
score = my_dict1["欣欣"]
print(f"欣欣的考试成绩是:{score}")
# 欣欣的考试成绩是:100
4.字典的嵌套
字典的Key和Value可以是任意数据类型(Key不可为字典),那么表明,字典是可以嵌套的。
需求案例:记录学生各科成绩的考试信息
# 定义嵌套字典
stu_score_dict = {
"王力鸿": {
"语文": 77,
"数学": 66,
"英语": 33
}, "周杰轮": {
"语文": 88,
"数学": 86,
"英语": 55
}, "林俊节": {
"语文": 99,
"数学": 96,
"英语": 66
}
}
print(f"学生的考试信息是:{stu_score_dict}")
# 学生的考试信息是:{'王力鸿': {'语文': 77, '数学': 66, '英语': 33}, '周杰轮': {'语文': 88, '数学': 86, '英语': 55}, '林俊节': {'语文': 99, '数学': 96, '英语': 66}}
# 从嵌套字典里获取数据
# 看一下周杰轮的语文信息
score = stu_score_dict["周杰轮"]["语文"]
print(f"周杰轮的语文分数是:{score}")
# 周杰轮的语文分数是:88
5.字典的注意事项
·键值对的Key和Value可以是任意类型(Key不可为字典)
·字典内Key不允许重复,重复添加等同于覆盖原有数据
·字典不可用下标索引,而是通过Key检索Value
6.字典的常用操作
·新增元素
语法:字典[Key] = Value
结果:字典被修改,新增了元素
# 新增元素
my_dict = {"欣欣": 100, "嘉嘉": 99, "周周": 88}
my_dict["文文"] = 66
print(f"字典经过新增元素后,结果:{my_dict}")
# 字典经过新增元素后,结果:{'欣欣': 100, '嘉嘉': 99, '周周': 88, '文文': 66}
·更新元素
语法:字典[Key] = Value
结果:字典被修改,元素被更新
注意:字典Key不可以重复,所以对已存在的Key执行上述操作,即更新Value值
# 更新元素
my_dict = {"欣欣": 100, "嘉嘉": 99, "周周": 88}
my_dict["欣欣"] = 77
print(f"字典经过更新后结果:{my_dict}")
# 字典经过更新后结果:{'欣欣': 77, '嘉嘉': 99, '周周': 88}
·删除元素
语法:字典.pop(Key)
结果:获得指定的Key的Value,同时字典被修改,指定Key的数据被删除
# 删除元素
my_dict = {"欣欣": 100, "嘉嘉": 99, "周周": 88}
score = my_dict.pop("欣欣")
print(f"字典中被移除了一个元素结果是:{my_dict}欣欣的考试分数是:{score}")
# 字典中被移除了一个元素结果是:{'嘉嘉': 99, '周周': 88}欣欣的考试分数是:100
·清空元素
语法:clear()
# 清空元素,clear
my_dict = {"欣欣": 100, "嘉嘉": 99, "周周": 88}
my_dict.clear()
print(f"字典被清空了内容是:{my_dict}")
# 字典被清空了内容是:{}
·获取全部的Key
语法:字典.Keys()
结果:得到字典中全部的Key
# 获取全部的Key
my_dict = {"欣欣": 100, "嘉嘉": 99, "周周": 88}
keys = my_dict.keys()
print(f"字典中全部Keys是:{keys}")
#字典中全部Keys是:dict_keys(['欣欣', '嘉嘉', '周周'])
·遍历字典
# 遍历字典
# 方式1:通过获取到全部的Key来完成遍历
for key in keys:
print(f"字典的Key是:{key}")
print(f"字典的Value是:{my_dict[key]}")
# 字典的Key是:欣欣
# 字典的Value是:100
# 字典的Key是:嘉嘉
# 字典的Value是:99
# 字典的Key是:周周
# 字典的Value是:88
#方式2:直接对字典进行for循环,每一次循环都是直接得到Key
for key in my_dict:
print(f"字典的Key是:{key}")
print(f"字典的Value是:{my_dict[key]}")
# 字典的Key是:欣欣
# 字典的Value是:100
# 字典的Key是:嘉嘉
# 字典的Value是:99
# 字典的Key是:周周
# 字典的Value是:88
·统计字典中的元素数量
语法:len()函数
# 统计字典中的元素数量
num = len(my_dict)
print(f"统计字典中的元素数量:{num}")
#统计字典中的元素数量:3
总结:
7.字典的特点
·可以容纳多个数据
·可以容纳不同类型的数据
·每一份数据都是Key Value键值对
·可以通过Key获取到Value,Key不可以重复(重复会覆盖)
·不支持下标索引
·可以修改(增加或删除元素等)
·支持for循环,不支持while循环
完结
标签:映射,欣欣,Value,dict,Key,my,字典 From: https://blog.csdn.net/weixin_47515798/article/details/139320591