# 五.字典
# 1.定义字典
# 定义字典
my_dict1 = {"王力鸿": 99, "周杰轮": 88, "林俊节": 77}
1
2
2
# 2.定义空字典
# 定义空字典
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)}")
1
2
3
4
5
6
2
3
4
5
6
# 3.重复 Key 的字典
# 定义重复Key的字典
my_dict1 = {"王力鸿": 99, "王力鸿": 88, "林俊节": 77}
print(f"重复key的字典的内容是:{my_dict1}")
# 重复key的字典的内容是:{'王力鸿': 88, '林俊节': 77}
# 后面的会覆盖前面的,并不会报错
1
2
3
4
5
6
2
3
4
5
6
# 4.获取 value
# 从字典中基于Key获取Value
my_dict1 = {"王力鸿": 99, "周杰轮": 88, "林俊节": 77}
score = my_dict1["王力鸿"]
print(f"王力鸿的考试分数是:{score}")
score = my_dict1["周杰轮"]
print(f"周杰轮的考试分数是:{score}")
1
2
3
4
5
6
2
3
4
5
6
# 5.嵌套字典
# 定义嵌套字典
stu_score_dict = {
"王力鸿": {
"语文": 77,
"数学": 66,
"英语": 33
}, "周杰轮": {
"语文": 88,
"数学": 86,
"英语": 55
}, "林俊节": {
"语文": 99,
"数学": 96,
"英语": 66
}
}
print(f"学生的考试信息是:{stu_score_dict}")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 6.嵌套字典中获取数据
# 从嵌套字典中获取数据
# 看一下周杰轮的语文信息
score = stu_score_dict["周杰轮"]["语文"]
print(f"周杰轮的语文分数是:{score}")
score = stu_score_dict["林俊节"]["英语"]
print(f"林俊节的英语分数是:{score}")
1
2
3
4
5
6
2
3
4
5
6
# 7.新增元素
my_dict = {"周杰轮": 99, "林俊节": 88, "张学油": 77}
# 新增元素
my_dict["张信哲"] = 66
print(f"字典经过新增元素后,结果:{my_dict}")
1
2
3
4
2
3
4
# 8.更新元素
# 更新元素
my_dict["周杰轮"] = 33
print(f"字典经过更新后,结果:{my_dict}")
1
2
3
2
3
# 9.pop 函数
# 删除元素
score = my_dict.pop("周杰轮")
print(f"字典中被移除了一个元素,结果:{my_dict}, 周杰轮的考试分数是:{score}")
1
2
3
2
3
# 10.clear 函数
# 清空元素, clear
my_dict.clear()
print(f"字典被清空了,内容是:{my_dict}")
1
2
3
2
3
# 11.获取全部的 key
# 获取全部的key
my_dict = {"周杰轮": 99, "林俊节": 88, "张学油": 77}
keys = my_dict.keys()
print(f"字典的全部keys是:{keys}")
1
2
3
4
2
3
4
# 12.遍历字典
# 遍历字典
# 方式1:通过获取到全部的key来完成遍历
for key in keys:
print(f"字典的key是:{key}")
print(f"字典的value是:{my_dict[key]}")
# 方式2:直接对字典进行for循环,每一次循环都是直接得到key
for key in my_dict:
print(f"2字典的key是:{key}")
print(f"2字典的value是:{my_dict[key]}")
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 13.len 函数
# 统计字典内的元素数量, len()函数
num = len(my_dict)
print(f"字典中的元素数量有:{num}个")
1
2
3
2
3
# 14.是否在字典
num_dict = {}
for i, num in enumerate(nums):
# 关键判断 是否在字典中
if num in num_dict and i - num_dict.get(num) <= k:
return True
else:
num_dict[num] = i
return False
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
是否存在:
if j in dict1 and len(dict1[j]) > 0:
# 字典的值不为空
# 在这里编写相关代码
else:
# 字典的值为空
# 在这里编写相关代码
1
2
3
4
5
6
2
3
4
5
6
# 15.字典合并
config_all = {"key1": value1,"key2": value2} | other_config
1
# 16.判断字典空
from typing import Any
task_map: dict[Any, Any] = {}
if not task_map:
print(1111)
1
2
3
4
5
6
2
3
4
5
6
# 17.删除指定key
在 Python 中,可以使用几种不同的方法来从字典中删除一个字段(键)。以下是一些常用的方法:
使用
del
语句:my_dict = {'a': 1, 'b': 2, 'c': 3} del my_dict['b'] # 删除键为 'b' 的字段 print(my_dict) # 输出: {'a': 1, 'c': 3}
1
2
3使用
pop()
方法:my_dict = {'a': 1, 'b': 2, 'c': 3} my_dict.pop('b') # 删除键为 'b' 的字段,返回被删除的值 print(my_dict) # 输出: {'a': 1, 'c': 3}
1
2
3使用
pop()
方法并设置默认值,以防键不存在:my_dict = {'a': 1, 'b': 2, 'c': 3} my_dict.pop('b', None) # 如果 'b' 不存在,返回 None print(my_dict) # 输出: {'a': 1, 'c': 3}
1
2
3使用
del
语句与try
和except
捕获可能的KeyError
:my_dict = {'a': 1, 'b': 2, 'c': 3} try: del my_dict['b'] except KeyError: print("Key not found.") print(my_dict) # 输出: {'a': 1, 'c': 3}
1
2
3
4
5
6
选择哪种方法取决于具体需求,比如是否需要处理键不存在的情况,以及是否需要获取被删除的值。