Python容器的类型(dict)
·
当然可以!以下是对你提供的完整 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_dict与info_dict[name]指向同一内存地址 - 修改任一变量,都会影响另一个
- 无需再赋值回去
七、小结:字典使用最佳实践
| 场景 | 推荐做法 |
|---|---|
| 创建字典 | 优先用 {} |
| 安全取值 | 用 .get(key, default) |
| 遍历 | 用 for k, v in dict.items(): |
| 修改嵌套数据 | 直接操作 dict[key1][key2] |
| 避免冗余 | 不要对引用对象重复赋值 |
| 判断键是否存在 | 用 if key in dict: |
💡 记住:字典是 Python 中最强大、最常用的数据结构之一,掌握其操作是编程基础的关键!
✅ 本笔记涵盖:定义、访问、修改、遍历、嵌套、综合应用,适合初学者系统学习或复习使用。
更多推荐
所有评论(0)