Python 3 字典(Dictionary)详解
在 Python 3 中,字典(Dictionary)是一个键值对(key-value pair)数据结构,类似于 JavaScript 的对象(Object)或 JSON。字典是无序、可变、且键唯一的数据结构,适用于快速查找和存储数据。
1. 字典的定义
字典使用 花括号 {} 创建,每个键值对用 key: value 表示,键值对之间用 逗号 , 分隔。
📌 示例代码:
# 定义一个字典
person = {
"name": "Alice",
"age": 25,
"city": "New York"
}
print(person)
# 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}
注意事项
- 键(Key)必须是不可变类型(如字符串、数字、元组)。
- 值(Value)可以是任何数据类型(如列表、字典、字符串、数字等)。
- 键唯一,不允许重复,如果重复,后面的值会覆盖前面的值。
📌 示例代码(键唯一性):
person = {"name": "Alice", "age": 25, "name": "Bob"}
print(person) # {'name': 'Bob', 'age': 25},前面的 "Alice" 被覆盖
2. 访问字典元素
(1)通过 key 访问
📌 示例代码:
person = {"name": "Alice", "age": 25, "city": "New York"}
print(person["name"]) # Alice
print(person["age"]) # 25
⚠ 注意:如果键不存在,会报 KeyError!
(2)使用 get() 方法
📌 示例代码:
print(person.get("city")) # New York
print(person.get("country")) # None
print(person.get("country", "Unknown")) # 使用默认值 Unknown
3. 修改字典
可以通过 key 直接修改值,如果 key 存在,则更新值;如果 key 不存在,则新增键值对。
📌 示例代码:
person = {"name": "Alice", "age": 25}
person["age"] = 26 # 修改已有键的值
person["city"] = "New York" # 新增键值对
print(person)
# 输出: {'name': 'Alice', 'age': 26, 'city': 'New York'}
4. 删除字典元素
(1)使用 del 关键字
📌 示例代码:
person = {"name": "Alice", "age": 25, "city": "New York"}
del person["age"] # 删除键 "age"
print(person) # {'name': 'Alice', 'city': 'New York'}
(2)使用 pop() 方法
📌 示例代码:
age = person.pop("age", "Key Not Found") # 移除 "age",返回值 25
print(age) # 25
print(person) # {'name': 'Alice', 'city': 'New York'}
(3)使用 popitem() 方法
📌 示例代码:
person = {"name": "Alice", "age": 25}
item = person.popitem() # 删除并返回最后一个键值对
print(item) # ('age', 25)
print(person) # {'name': 'Alice'}
(4)清空字典 clear()
📌 示例代码:
person.clear()
print(person) # {}
5. 遍历字典
(1)遍历所有键
📌 示例代码:
person = {"name": "Alice", "age": 25, "city": "New York"}
for key in person:
print(key) # name, age, city
(2)遍历所有值
📌 示例代码:
for value in person.values():
print(value) # Alice, 25, New York
(3)遍历键值对
📌 示例代码:
for key, value in person.items():
print(f"{key}: {value}")
# name: Alice
# age: 25
# city: New York
6. 字典常用方法
| 方法 | 说明 | 示例 |
|---|---|---|
dict.keys() | 获取所有键 | person.keys() |
dict.values() | 获取所有值 | person.values() |
dict.items() | 获取所有键值对 | person.items() |
dict.update(new_dict) | 合并字典 | person.update({"country": "USA"}) |
dict.copy() | 复制字典 | new_dict = person.copy() |
📌 示例代码:
person = {"name": "Alice", "age": 25}
new_dict = person.copy() # 复制字典
print(new_dict) # {'name': 'Alice', 'age': 25}
person.update({"city": "New York", "age": 26}) # 更新字典
print(person) # {'name': 'Alice', 'age': 26, 'city': 'New York'}
7. 字典合并
Python 3.9+ 提供 | 运算符用于合并字典。
📌 示例代码(Python 3.9+):
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
merged_dict = dict1 | dict2 # 合并,dict2 的 "b" 覆盖了 dict1 的 "b"
print(merged_dict) # {'a': 1, 'b': 3, 'c': 4}
对于 Python 3.8 及以下,可以使用 update() 方法:
dict1.update(dict2)
print(dict1) # {'a': 1, 'b': 3, 'c': 4}
8. 字典推导式(Dictionary Comprehension)
Python 支持字典推导式,用于快速创建字典。
📌 示例代码:
squares = {x: x**2 for x in range(1, 6)}
print(squares) # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
9. 字典与 JSON
Python 的 dict 与 JSON 结构类似,可以使用 json 模块进行转换。
📌 字典转换为 JSON
import json
person = {"name": "Alice", "age": 25, "city": "New York"}
json_data = json.dumps(person) # 转换为 JSON 字符串
print(json_data) # {"name": "Alice", "age": 25, "city": "New York"}
📌 JSON 转换为字典
dict_data = json.loads(json_data)
print(dict_data) # {'name': 'Alice', 'age': 25, 'city': 'New York'}
总结
✅ 字典是键值对数据结构,键必须唯一且不可变
✅ 支持 keys()、values()、items() 进行遍历
✅ 可以使用 get() 方法获取值,避免 KeyError
✅ 支持合并、修改、删除和字典推导式
✅ 适用于快速查找数据、存储配置信息、解析 JSON 数据
字典适用于存储结构化数据,访问速度比列表快! 更多详细内容请关注其他相关文章!