一、字典是什么?¶
在Python中,字典(Dictionary)是一种键值对形式的数据结构,它就像我们现实生活中的“通讯录”——通过一个唯一的键(Key) 就能快速找到对应的值(Value)。比如,我们可以用“姓名”作为键,存储“年龄”“电话”等信息作为值,这样比用列表(通过索引访问)更直观。
举个例子:如果要记录一个学生的信息,用列表可能需要 [["name", "小明"], ["age", 18]],而用字典则是 {"name": "小明", "age": 18},后者直接通过键名就能访问,比如 student["name"] 就能得到“小明”。
二、创建字典:最简单的方式是用大括号¶
字典由键(Key) 和值(Value) 组成,键和值用冒号 : 分隔,键值对之间用逗号 , 分隔,整体放在大括号 {} 中。
示例:
# 用大括号创建字典
student = {
"name": "小明",
"age": 18,
"score": 95,
"hobbies": ["篮球", "编程"] # 值可以是任意类型,包括列表
}
注意:
- 键必须是不可变类型(如字符串、数字、元组),不能用列表、字典等可变类型作为键(否则会报错)。
- 值可以是任意类型(数字、字符串、列表、字典等)。
三、访问字典中的元素:通过键名“查值”¶
要获取字典中的值,直接用键名加中括号 [] 即可。如果键不存在,会报错 KeyError,因此推荐用 get() 方法(更安全,不存在时返回 None 或自定义默认值)。
示例:
student = {"name": "小明", "age": 18, "score": 95}
# 1. 直接用键访问(键不存在会报错)
print(student["name"]) # 输出:小明
# print(student["gender"]) # 报错!KeyError: 'gender'
# 2. 用get()方法(更安全,不存在时返回None或指定默认值)
print(student.get("age")) # 输出:18
print(student.get("gender", "未知")) # 输出:未知(不存在时返回默认值“未知”)
四、修改、添加与删除元素¶
字典是可变的,可以随时修改或添加键值对,也能删除元素。
- 修改/添加:如果键已存在,赋值会修改值;如果键不存在,赋值会新增键值对。
student = {"name": "小明", "age": 18}
# 修改已有键的值
student["age"] = 19 # 把年龄改为19
print(student) # 输出:{'name': '小明', 'age': 19}
# 添加新键值对
student["score"] = 95 # 新增分数
print(student) # 输出:{'name': '小明', 'age': 19, 'score': 95}
- 删除元素:用
del语句或pop()方法。
student = {"name": "小明", "age": 18, "score": 95}
# 1. del语句(直接删除键值对,无返回值)
del student["age"] # 删除年龄
print(student) # 输出:{'name': '小明', 'score': 95}
# 2. pop()方法(返回被删除的值,可指定默认值)
age = student.pop("score") # 删除分数并返回95
print(student) # 输出:{'name': '小明'}
print(age) # 输出:95
五、遍历字典:三种常用技巧¶
遍历字典时,我们需要关注键(Key)、值(Value) 或键值对(Key-Value)。Python提供了三种遍历方式:
- 遍历所有键(Key):用
for key in 字典或字典.keys()。
student = {"name": "小明", "age": 18, "score": 95}
for key in student:
print(key) # 输出:name, age, score(Python 3.7+ 按插入顺序)
- 遍历所有值(Value):用
for value in 字典.values()。
for value in student.values():
print(value) # 输出:小明, 18, 95
- 遍历所有键值对(Key-Value):用
for key, value in 字典.items()。
for key, value in student.items():
print(f"{key}: {value}") # 输出:name: 小明, age: 18, score: 95
六、字典的常用小技巧¶
- 判断键是否存在:用
in操作符。
student = {"name": "小明", "age": 18}
print("name" in student) # 输出:True(键存在)
print("gender" in student) # 输出:False(键不存在)
- 获取字典长度:用
len()。
print(len(student)) # 输出:2(两个键值对)
- 合并字典:用
update()方法,合并后会覆盖重复的键。
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
dict1.update(dict2) # 合并dict2到dict1
print(dict1) # 输出:{'a': 1, 'b': 3, 'c': 4}(b的值被覆盖)
七、总结¶
字典是Python中灵活且高效的数据结构,核心是键值对,通过键快速访问值,适合存储“关联数据”(如用户信息、配置参数)。掌握以下关键点:
- 用 {} 或 dict() 创建字典,键必须是不可变类型(字符串、数字、元组)。
- 用 字典[key] 或 字典.get(key) 访问值,get() 更安全。
- 通过赋值修改/添加元素,用 del 或 pop() 删除元素。
- 遍历用 for key in 字典、for value in 字典.values() 或 for key, value in 字典.items()。
多动手尝试,就能熟练运用字典解决实际问题啦!