Python 办公自动化从入门到入土|09 数据容器之字典
2026/9/10 13:48:00 网站建设 项目流程

前言

列表、元组靠下标数字取值,适合顺序排列的数据;但现实办公场景经常遇到:姓名‑年龄、学号‑分数、员工号‑薪资这种「键值对应」的数据,此时就用字典 dict
字典属于可变容器,key(键)找 value(值),查询速度快,大量用于 Excel 读取结果、JSON 接口数据、配置信息。

1. 字典基础语法

# 字面量创建字典 student = { "name": "张三", "age": 20, "major": "人工智能" } print(type(student)) print(student)

输出:

<class 'dict'> {'name': '张三', 'age': 20, 'major': '人工智能'}
  • 格式:{key1:value1, key2:value2,...}
  • key 要求:必须不可变(字符串、数字、元组),列表不能做 key;key 唯一,重复写后面会覆盖前面
  • value:任意类型,字符串、数字、列表、字典都可以
  • 字典无序(Python3.7 + 保留插入顺序,但不能用数字下标访问)

错误写法

# d = {[1,2]: 100} # list可变,不能作为key,报错 TypeError: unhashable type: 'list'

2. 获取字典的值

方式 1:[key]取值,key 不存在直接报错

student = {"name":"张三","age":20} print(student["name"]) # print(student["score"]) # key不存在,KeyError

输出:

张三

方式 2:.get()推荐办公自动化使用,不会报错

print(student.get("name")) print(student.get("score", 0)) # key不存在返回默认值0,不会抛异常

输出:

张三 0

办公读 Excel、解析接口,优先用.get(),防止某一行缺少字段程序直接崩掉。

3. 新增 / 修改元素

字典 key 存在就是修改;key 不存在就是新增

student = {"name":"张三","age":20} student["age"] = 21 # key存在,修改 student["score"] = 88 # key不存在,新增键值对 print(student)

输出:

{'name': '张三', 'age': 21, 'score': 88}

4. 删除字典元素

student = {"name":"张三","age":20,"score":88} #pop 指定key删除,返回被删除的值 val = student.pop("score") print("pop删除的值:", val) print("pop之后字典:", student) #del 删除指定键值对 del student["age"] print("del之后字典:", student) #clear清空全部 student.clear() print("clear清空后:", student)

输出:

pop删除的值: 88 pop之后字典: {'name': '张三', 'age': 20} del之后字典: {'name': '张三'} clear清空后: {}

5. 字典常用内置方法

info = {"name":"李四","age":22,"city":"合肥"} #获取全部键 print(info.keys()) #获取全部值 print(info.values()) #获取全部键值对,遍历用 print(info.items())

输出:

dict_keys(['name', 'age', 'city']) dict_values(['李四', 22, '合肥']) dict_items([('name', '李四'), ('age', 22), ('city', '合肥')])

遍历字典(办公写脚本最高频)

info = {"name":"李四","age":22,"city":"合肥"} #遍历key print("---遍历key方式---") for k in info.keys(): print(k, info[k]) #直接遍历键值对 print("---遍历items方式---") for k, v in info.items(): print(f"键:{k},值:{v}")

输出:

---遍历key方式--- name 李四 age 22 city 合肥 ---遍历items方式--- 键:name,值:李四 键:age,值:22 键:city,值:合肥

6. 字典嵌套(处理 Excel 复杂表格、JSON)

表格一行数据经常封装成嵌套字典,办公自动化非常常见

staff = { "emp001": {"name":"小明","salary":6000}, "emp002": {"name":"小红","salary":7000} } #取值 print(staff["emp001"]["salary"]) print(staff["emp002"]["name"])

输出:

6000 小红

7. 字典推导式(快速生成字典)

# 简单示例:数字:平方 d = {i:i**2 for i in range(1,6)} print(d) #过滤版本 d2 = {i:i**2 for i in range(1,6) if i>2} print(d2)

输出:

{1: 1, 2: 4, 3: 9, 4: 16, 5: 25} {3: 9, 4: 16, 5: 25}

8. 办公实战小案例:模拟 Excel 读取一行表格

从表格读取一行,封装字典,方便按列名字取值,不用记列索引号

# 表头 headers = ["姓名","年龄","工资"] # 表格一行数据 row_data = ["老王",35,9500] #打包成字典 row_dict = {headers[i]:row_data[i] for i in range(len(headers))} print(row_dict.get("姓名")) print(row_dict.get("工资")) print(row_dict)

输出:

老王 9500 {'姓名': '老王', '年龄': 35, '工资': 9500}

9. 字典与列表对比总结

容器

查找方式

是否可变

场景

list 列表

数字下标

可变

有序一组数据

tuple 元组

数字下标

不可变

固定不变序列

dict 字典

key 键查询

可变

键‑值映射,表格、JSON

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询