在 Python 的众多数据结构中,字典(Dictionary) 是一种极为灵活且强大的存在。它以 “键 - 值对(Key-Value Pair)” 的形式存储数据,能高效地完成数据的存储、检索与操作。本文将从字典的定义、操作、嵌套应用到实战场景,全方位带你掌握 Python 字典。

一、字典的定义:三种创建方式

字典是 Python 中的可变容器,元素以{键: 值}的形式组织,键具有唯一性。以下是三种常见的字典创建方式:

# 方式1:直接通过大括号定义
my_dict1 = {"小明":95, "小红":88, "小兰":100}
# 方式2:创建空字典后逐步添加元素
my_dict2 = {}
# 方式3:通过dict()函数创建
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)}")

需要注意的是,字典的键必须唯一,如果出现重复键,后定义的键值对会覆盖之前的。例如:

my_dict1 = {"小明":95, "小明":88, "小兰":100}
print(f"重复Key的字典内容是:{my_dict1}")  # 输出:{'小明': 88, '小兰': 100}

二、字典的基本操作:增删改查(含详细代码示例)

字典的核心操作围绕 “键 - 值对” 展开,以下是常用操作的代码演示:

1. 基于键获取值

通过字典[键]可快速检索对应的值。

my_dict1 = {"小明":95, "小红":88, "小兰":100}
score = my_dict1["小兰"]
print(f"小兰的成绩为:{score},类型是:{type(score)}")  # 输出小兰的成绩及类型
score = my_dict1["小明"]
print(f"小明的成绩为:{score},类型是:{type(score)}")  # 输出小明的成绩及类型

2. 新增元素

为不存在的键赋值,即可向字典中添加新的键值对。

my_dict = {"小明":88, "小红":99, "小兰":77}
my_dict["小芳"] = 100  # 新增“小芳: 100”键值对
print(f"新增元素后,结果是:{my_dict}")

3. 更新元素

为已存在的键赋值,即可修改对应的值。

my_dict = {"小明":88, "小红":99, "小兰":77}
my_dict["小明"] = 66  # 将“小明”的成绩从88更新为66
print(f"更新元素后结果是:{my_dict}")

4. 删除指定元素

使用pop(键)方法,可删除并返回该键对应的值。

my_dict = {"小明":88, "小红":99, "小兰":77}
score = my_dict.pop("小明")  # 删除“小明”键值对,返回其值88
print(f"字典中被移除了一个元素,结果是:{my_dict},小明的考试分数是:{score}")
  1. 清空字典
    使用clear()方法,可清空字典中所有元素。
my_dict = {"小明":88, "小红":99, "小兰":77}
my_dict.clear()  # 清空字典所有内容
print(f"字典被清空了,内容是:{my_dict}")

6. 获取全部键

使用keys()方法可获取字典中所有的键,返回可迭代对象。

my_dict = {"小明":88, "小红":99, "小兰":77}
keys = my_dict.keys()
print(f"字典的全部键为:{keys}")

三、字典的遍历:两种常用方式

遍历字典是获取所有键值对的重要操作,以下是两种方式的代码示例:

方式 1:通过keys()获取所有键后遍历

my_dict = {"小明":88, "小红":99, "小兰":77}
keys = my_dict.keys()
for key in keys:
    print(f"字典的key是:{key}")
    print(f"字典的value是:{my_dict[key]}")

方式 2:直接遍历字典(默认遍历键)

my_dict = {"小明":88, "小红":99, "小兰":77}
for key in my_dict:  # 等价于 for key in my_dict.keys()
    print(f"字典的key是:{key}")
    print(f"字典的value是:{my_dict[key]}")

四、嵌套字典:复杂数据的组织利器

当需要存储多层级、结构化数据时,嵌套字典(字典中包含字典)是绝佳选择。例如存储学生多科目成绩:

stu_score_dict = {
    "小明":{
        "语文":77,
        "数学":66,
        "英语":33
    },
    "小红":{
        "语文":88,
        "数学":85,
        "英语":99
    },
    "小兰":{
        "语文":67,
        "数学":90,
        "英语":98
    }
}
print(f"学生的考试信息是:{stu_score_dict}")

# 从嵌套字典中获取具体数据(如小兰的语文成绩)
score = stu_score_dict["小兰"]["语文"]
print(f"小兰的语文成绩是:{score}")

输出结果如图:
在这里插入图片描述

五、实战场景:字典在业务逻辑中的应用

以 “员工升职加薪” 为例,演示字典在实际业务中的处理能力:

my_dict = {
    "小明":{
        "部门":"科技部",
        "工资":3000,
        "级别":1
    },
    "小红":{
        "部门":"市场部",
        "工资":5000,
        "级别":2
    },
    "小兰":{
        "部门":"市场部",
        "工资":7000,
        "级别":3
    },
    "小英":{
        "部门":"科技部",
        "工资":4000,
        "级别":1
    },
    "小芳":{
        "部门":"市场部",
        "工资":6000,
        "级别":2
    }
}
print(f"员工升职加薪前的结果为:{my_dict}")

# 遍历字典,为“级别为1”的员工升职加薪
for name in my_dict:
    if my_dict[name]["级别"] == 1:
        employee_info = my_dict[name]  # 获取员工信息子字典
        employee_info["级别"] = 2     # 级别提升
        employee_info["工资"] += 1000  # 工资加1000
        my_dict[name] = employee_info  # 更新员工信息

print(f"员工升职加薪后的结果为:{my_dict}")

输出结果为:
在这里插入图片描述

总结

字典是 Python 中键值映射型数据结构的代表,具有以下核心优势:
键值对存储,数据检索效率高;
支持嵌套,能灵活组织复杂数据;
增删改查操作简洁,适配各类业务场景。
从基础定义到嵌套应用,再到实战业务逻辑,字典的实用性贯穿 Python 开发的方方面面。掌握字典,能让你在数据处理、业务逻辑实现上更加游刃有余。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐