# 五.字典

# 1.定义字典

# 定义字典
my_dict1 = {"王力鸿": 99, "周杰轮": 88, "林俊节": 77}
1
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

# 3.重复 Key 的字典

# 定义重复Key的字典
my_dict1 = {"王力鸿": 99, "王力鸿": 88, "林俊节": 77}
print(f"重复key的字典的内容是:{my_dict1}")

# 重复key的字典的内容是:{'王力鸿': 88, '林俊节': 77}
# 后面的会覆盖前面的,并不会报错
1
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

# 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

# 6.嵌套字典中获取数据

# 从嵌套字典中获取数据
# 看一下周杰轮的语文信息
score = stu_score_dict["周杰轮"]["语文"]
print(f"周杰轮的语文分数是:{score}")
score = stu_score_dict["林俊节"]["英语"]
print(f"林俊节的英语分数是:{score}")
1
2
3
4
5
6

# 7.新增元素

my_dict = {"周杰轮": 99, "林俊节": 88, "张学油": 77}
# 新增元素
my_dict["张信哲"] = 66
print(f"字典经过新增元素后,结果:{my_dict}")
1
2
3
4

# 8.更新元素

# 更新元素
my_dict["周杰轮"] = 33
print(f"字典经过更新后,结果:{my_dict}")
1
2
3

# 9.pop 函数

# 删除元素
score = my_dict.pop("周杰轮")
print(f"字典中被移除了一个元素,结果:{my_dict}, 周杰轮的考试分数是:{score}")
1
2
3

# 10.clear 函数

# 清空元素, clear
my_dict.clear()
print(f"字典被清空了,内容是:{my_dict}")
1
2
3

# 11.获取全部的 key

# 获取全部的key
my_dict = {"周杰轮": 99, "林俊节": 88, "张学油": 77}
keys = my_dict.keys()
print(f"字典的全部keys是:{keys}")
1
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

# 13.len 函数

# 统计字典内的元素数量, len()函数
num = len(my_dict)
print(f"字典中的元素数量有:{num}个")
1
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

是否存在:

if j in dict1 and len(dict1[j]) > 0:
    # 字典的值不为空
    # 在这里编写相关代码
else:
    # 字典的值为空
    # 在这里编写相关代码
1
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

# 17.删除指定key

在 Python 中,可以使用几种不同的方法来从字典中删除一个字段(键)。以下是一些常用的方法:

  1. 使用 del 语句:

    my_dict = {'a': 1, 'b': 2, 'c': 3}
    del my_dict['b']  # 删除键为 'b' 的字段
    print(my_dict)  # 输出: {'a': 1, 'c': 3}
    
    1
    2
    3
  2. 使用 pop() 方法:

    my_dict = {'a': 1, 'b': 2, 'c': 3}
    my_dict.pop('b')  # 删除键为 'b' 的字段,返回被删除的值
    print(my_dict)  # 输出: {'a': 1, 'c': 3}
    
    1
    2
    3
  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
  4. 使用 del 语句与 tryexcept 捕获可能的 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

选择哪种方法取决于具体需求,比如是否需要处理键不存在的情况,以及是否需要获取被删除的值。

上次更新: 10/29/2024, 10:27:50 AM