Python3 字典知识点大全
编程小白也能看懂的终极指南
字典是Python中最重要的数据结构之一,它就像现实生活中的字典一样,通过键(key)可以快速找到对应的值(value)。
字典是无序、可变的集合,使用花括号{}创建,元素由键值对组成,键和值之间用冒号:分隔。
字典创建
创建字典的三种主要方式:
1. 直接创建:使用花括号{},键值对用逗号分隔
# 创建一个学生信息字典
student = {“name”: “张三”, “age”: 20, “major”: “计算机科学”}
student = {“name”: “张三”, “age”: 20, “major”: “计算机科学”}
2. 使用dict()函数:可以传入键值对序列
student = dict(name=“李四”, age=21, major=“数据科学”)
3. 字典推导式:通过表达式生成字典
# 创建数字平方的字典
squares = {x: x*x for x in range(1, 6)}
# 结果:{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
squares = {x: x*x for x in range(1, 6)}
# 结果:{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
访问元素
通过键访问值:使用方括号[]或get()方法
student = {“name”: “王五”, “age”: 22}
# 直接访问
print(student[“name”]) # 输出: 王五
# 使用get()方法(更安全,键不存在时返回None)
print(student.get(“age”)) # 输出: 22
print(student.get(“grade”, “未知”)) # 输出: 未知
# 直接访问
print(student[“name”]) # 输出: 王五
# 使用get()方法(更安全,键不存在时返回None)
print(student.get(“age”)) # 输出: 22
print(student.get(“grade”, “未知”)) # 输出: 未知
检查键是否存在:使用in关键字
if “age” in student:
print(“年龄存在”)
print(“年龄存在”)
获取所有键和值:keys()和values()方法
keys = student.keys() # 获取所有键
values = student.values() # 获取所有值
values = student.values() # 获取所有值
修改字典
添加/更新元素:直接赋值
student = {“name”: “赵六”}
# 添加新元素
student[“age”] = 23
# 更新现有元素
student[“name”] = “钱七”
# 添加新元素
student[“age”] = 23
# 更新现有元素
student[“name”] = “钱七”
update()方法:批量更新键值对
student.update({“age”: 24, “major”: “人工智能”})
setdefault()方法:安全地设置默认值
# 如果键不存在,设置默认值;否则返回现有值
major = student.setdefault(“major”, “未指定”)
major = student.setdefault(“major”, “未指定”)
删除元素
del关键字:删除指定键的元素
del student[“age”] # 删除age键
pop()方法:删除键并返回对应的值
name = student.pop(“name”) # 删除name键并返回值
popitem()方法:删除最后一个键值对(Python 3.7+有序)
key, value = student.popitem() # 删除并返回最后一个键值对
clear()方法:清空整个字典
student.clear() # 清空所有键值对,字典为空但存在
遍历字典
遍历所有键:直接遍历字典或使用keys()
for key in student:
print(key)
for key in student.keys():
print(key)
print(key)
for key in student.keys():
print(key)
遍历所有值:使用values()
for value in student.values():
print(value)
print(value)
遍历键值对:使用items()
for key, value in student.items():
print(f“{key}: {value}”)
print(f“{key}: {value}”)
字典推导式:创建新字典的强大工具
# 将键转换为大写
new_dict = {k.upper(): v for k, v in student.items()}
new_dict = {k.upper(): v for k, v in student.items()}
高级特性
嵌套字典:字典中可以包含字典
students = {
“001”: {“name”: “张三”, “score”: 95},
“002”: {“name”: “李四”, “score”: 88},
}
“001”: {“name”: “张三”, “score”: 95},
“002”: {“name”: “李四”, “score”: 88},
}
字典合并:使用 | 运算符(Python 3.9+)或update()
dict1 = {“a”: 1, “b”: 2}
dict2 = {“b”: 3, “c”: 4}
# 新方法(Python 3.9+)
merged = dict1 | dict2 # {‘a’: 1, ‘b’: 3, ‘c’: 4}
# 传统方法
dict1.update(dict2)
dict2 = {“b”: 3, “c”: 4}
# 新方法(Python 3.9+)
merged = dict1 | dict2 # {‘a’: 1, ‘b’: 3, ‘c’: 4}
# 传统方法
dict1.update(dict2)
有序字典:collections.OrderedDict
from collections import OrderedDict
# 记住元素添加的顺序
ordered_dict = OrderedDict()
ordered_dict[“a”] = 1
ordered_dict[“b”] = 2
# 记住元素添加的顺序
ordered_dict = OrderedDict()
ordered_dict[“a”] = 1
ordered_dict[“b”] = 2
字典结构可视化
字典就像一组抽屉,每个标签(键)对应一个抽屉里的内容(值)
name
“张三”
→
age
22
→
major
“计算机”
→
courses
[“Python”, “算法”]
字典特性总结
- 键必须唯一 – 不能重复
- 键不可变 – 可用字符串、数字、元组
- 值任意类型 – 数字、字符串、列表、字典等
- 快速查找 – 通过键直接定位值
- 动态可变 – 随时添加、修改、删除元素
- 内存高效 – 基于哈希表实现,速度快
Python字典知识点总结 | 专为编程小白设计 | 建议收藏随时查阅
字典是Python的瑞士军刀,掌握它将大大提高你的编程效率!