一、概述
字典(Dictionary)是 Python 中一种内置的数据结构,属于可变序列,用于存储键值对(key-value pairs)。每个键(key)必须是唯一的,而值(value)可以是任意数据类型。字典的特性包括:
- 无序性:字典中的元素没有特定的顺序(在 Python 3.7 及更高版本中,字典保持插入顺序)。
- 可变性:字典是可变的,可以动态添加、删除和修改键值对。
- 键的唯一性:每个键在字典中必须唯一。
字典通常用于需要快速查找、插入和删除的场景。
二、字典的创建
字典可以使用花括号 {}
或 dict()
函数来创建。
示例:
# 使用花括号创建字典
my_dict = {"name": "Alice","age": 25,"city": "New York"
}
print(my_dict) # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}# 使用 dict() 函数创建字典
another_dict = dict(name="Bob", age=30, city="Los Angeles")
print(another_dict) # 输出: {'name': 'Bob', 'age': 30, 'city': 'Los Angeles'}
三、访问字典中的值
可以通过键访问字典中的值。使用方括号 []
或 get()
方法都可以。
示例:
# 使用方括号访问值
print(my_dict["name"]) # 输出: Alice# 使用 get() 方法访问值
print(my_dict.get("age")) # 输出: 25# 使用一个不存在的键会引发 KeyError
# print(my_dict["gender"]) # 会引发错误# 使用 get() 方法访问不存在的键时返回 None 或默认值
print(my_dict.get("gender")) # 输出: None
print(my_dict.get("gender", "Not specified")) # 输出: Not specified
四、字典的基本操作
1. 添加或修改键值对
可以通过赋值语句添加或修改字典中的键值对。如果键已经存在,则会更新其对应的值。
示例:
my_dict["gender"] = "Female" # 添加新的键值对
print(my_dict) # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York', 'gender': 'Female'}my_dict["age"] = 26 # 修改已有键的值
print(my_dict) # 输出: {'name': 'Alice', 'age': 26, 'city': 'New York', 'gender': 'Female'}
2. 删除键值对
可以使用 del
语句或 pop()
方法删除字典中的键值对。
示例:
# 使用 del 删除键值对
del my_dict["city"]
print(my_dict) # 输出: {'name': 'Alice', 'age': 26, 'gender': 'Female'}# 使用 pop() 删除并返回指定键的值
age = my_dict.pop("age")
print(age) # 输出: 26
print(my_dict) # 输出: {'name': 'Alice', 'gender': 'Female'}
3. 清空字典
使用 clear()
方法可以清空字典中的所有键值对。
示例:
my_dict.clear()
print(my_dict) # 输出: {}
4. 字典的长度
使用 len()
函数可以获取字典中键值对的数量。
示例:
my_dict = {"name": "Alice", "age": 25}
print(len(my_dict)) # 输出: 2
五、字典的方法
字典有多种内置方法,常用的有:
-
keys()
:返回字典中所有键的视图。示例:
keys = my_dict.keys() print(keys) # 输出: dict_keys(['name', 'gender'])
-
values()
:返回字典中所有值的视图。示例:
values = my_dict.values() print(values) # 输出: dict_values(['Alice', 'Female'])
-
items()
:返回字典中所有键值对的视图,以元组的形式。示例:
items = my_dict.items() print(items) # 输出: dict_items([('name', 'Alice'), ('gender', 'Female')])
六、遍历字典
可以使用 for
循环遍历字典的键、值或键值对。
示例:
my_dict = {"name": "Alice", "age": 25, "city": "New York"}# 遍历键
for key in my_dict:print(key) # 输出: name, age, city# 遍历值
for value in my_dict.values():print(value) # 输出: Alice, 25, New York# 遍历键值对
for key, value in my_dict.items():print(f"{key}: {value}")
# 输出:
# name: Alice
# age: 25
# city: New York
七、字典的嵌套
字典可以嵌套,作为值的元素可以是另一个字典。适用于表示层次结构的数据。
示例:
nested_dict = {"name": "Alice","contact": {"email": "alice@example.com","phone": "123-456-7890"}
}
print(nested_dict["contact"]["email"]) # 输出: alice@example.com
八、字典的应用
字典在许多场景中非常有用,例如:
- 快速查找:字典提供 O(1) 的平均查找时间,适合用作快速查找数据的结构。
- 数据表示:可以使用字典表示复杂数据结构,如 JSON 数据。
- 存储配置信息:常用于存储配置信息和参数。