当然可以!以下是对你提供的完整 Python 字典学习代码的系统化笔记整理,结构清晰、重点突出,便于复习与教学使用。


📘 Python 字典(dict)学习笔记


一、字典的基本定义

1. 字典字面量语法

{key: value, key: value, ..., key: value}
  • 键(key)必须是不可变类型(如字符串、数字、元组)
  • 值(value)可以是任意类型
  • 键必须唯一,重复键会覆盖前面的值

2. 定义字典变量

my_dict = {"王力鸿": 99, "林俊节": 97, "周杰伦": 96}

3. 定义空字典(两种方式)

my_dict2 = {}           # 推荐,简洁
my_dict3 = dict()       # 显式调用构造函数

验证类型:

print(type(my_dict))  # <class 'dict'>

二、字典的特性与注意事项

❗ 不允许重复键

my_dict1 = {"王力鸿": 99, "王力鸿": 88, "林俊节": 77}
print(my_dict1)  # {'王力鸿': 88, '林俊节': 77}
  • 后出现的键值对会覆盖先出现的同名键

三、访问字典中的值

1. 通过键获取值

score = my_dict1["王力鸿"]
print(f"王力鸿的考试分数是: {score}")

⚠️ 风险:若键不存在,会抛出 KeyError

安全方式(推荐)

score = my_dict1.get("张三", 0)  # 不存在返回默认值 0

2. 嵌套字典访问

stu_score_dict = {
    "王力鸿": {"语文": 77, "数学": 66, "英语": 33},
    "周杰轮": {"语文": 88, "数学": 86, "英语": 55}
}

# 两层索引
score = stu_score_dict["周杰轮"]["语文"]
print(f"周杰轮的语文分数是: {score}")

四、字典的常用操作

操作语法说明
新增元素dict[key] = value键不存在则新增
更新元素dict[key] = new_value键存在则覆盖
删除元素dict.pop(key)删除并返回值;可加默认值防错
清空字典dict.clear()清空所有键值对,保留字典对象
获取所有键dict.keys()返回 dict_keys 视图对象
获取所有值dict.values()返回 dict_values 视图对象
获取键值对dict.items()返回 dict_items,用于 for k, v in ...
统计元素数len(dict)返回键值对数量

示例代码:

my_dict = {"周杰轮": 99, "林俊节": 88, "张学油": 77}

# 新增
my_dict["张信哲"] = 66

# 更新
my_dict["周杰轮"] = 33

# 删除
score = my_dict.pop("周杰轮")

# 清空
my_dict.clear()

# 获取键
keys = my_dict.keys()
print(keys)  # dict_keys(['林俊节', '张学油', '张信哲'])

五、遍历字典

方式1:通过 .keys() 遍历

for key in my_dict.keys():
    print(f"key: {key}, value: {my_dict[key]}")

方式2:直接遍历字典(等价于遍历 keys)

for key in my_dict:
    print(f"key: {key}, value: {my_dict[key]}")

方式3:推荐!直接遍历键值对

for key, value in my_dict.items():
    print(f"{key}: {value}")

六、综合案例:员工升职加薪

🎯 需求

  • 级别为 1 的员工:级别升为 2,工资 +1000

✅ 正确实现

info_dict = {
    "王力宏": {"部门": "科技部", "工资": 3000, "级别": 1},
    "周杰伦": {"部门": "市场部", "工资": 5000, "级别": 2},
    "张学友": {"部门": "科技部", "工资": 4000, "级别": 1}
}

for name in info_dict:
    if info_dict[name]["级别"] == 1:
        info_dict[name]["级别"] = 2
        info_dict[name]["工资"] += 1000

print(info_dict)

🔍 关于中间变量的说明

employee_info_dict = info_dict[name]  # 引用,非复制
employee_info_dict["工资"] += 1000   # 直接修改原字典
info_dict[name] = employee_info_dict  # ❌ 多余!可删除
  • 因为字典是可变对象employee_info_dictinfo_dict[name] 指向同一内存地址
  • 修改任一变量,都会影响另一个
  • 无需再赋值回去

七、小结:字典使用最佳实践

场景推荐做法
创建字典优先用 {}
安全取值.get(key, default)
遍历for k, v in dict.items():
修改嵌套数据直接操作 dict[key1][key2]
避免冗余不要对引用对象重复赋值
判断键是否存在if key in dict:

💡 记住:字典是 Python 中最强大、最常用的数据结构之一,掌握其操作是编程基础的关键!


✅ 本笔记涵盖:定义、访问、修改、遍历、嵌套、综合应用,适合初学者系统学习或复习使用。

更多推荐