10.1 字典的定义(掌握)
字典是一种无序的键值对集合,用于存储和查找数据。字典通过键(key)来访问值(value),键必须是唯一的且不可变的(通常为字符串或数字),而值可以是任意数据类型。字典使用大括号 {}
表示,键值对之间用逗号分隔,键和值之间用冒号分隔。
定义字典:
empty_dict = {} # 空字典 person = {"name": "aini", "age": 23, "city": "Shanghai"} # 包含多个键值对的字典
10.2 字典的基本操作(掌握)
字典支持多种基本操作,如添加、修改、删除和访问键值对。
10.2.1 访问字典的值
使用键来访问字典中的值。如果键不存在会引发
KeyError
,可以使用get()
方法避免异常。person = {"name": "aini", "age": 23} print(person["name"]) # 输出 'aini' print(person.get("age")) # 输出 23 print(person.get("gender", "N/A")) # 输出 'N/A',若键不存在返回默认值
10.2.2 添加和修改键值对
如果键已存在,则修改该键的值;如果键不存在,则添加新的键值对。
person = {"name": "aini", "age": 23} person["city"] = "Shanghai" # 添加新的键值对 person["age"] = 24 # 修改已有键的值 print(person) # 输出 {'name': 'aini', 'age': 24, 'city': 'Shanghai'}
10.2.3 删除键值对
使用
del
语句或pop()
方法删除指定的键值对。popitem()
方法可以随机删除字典中的最后一对键值。person = {"name": "aini", "age": 23, "city": "Shanghai"} del person["city"] # 删除指定键 age = person.pop("age") # 使用 pop() 获取并删除指定键 print(person) # 输出 {'name': 'aini'} print(age) # 输出 23
10.2.4 检查键是否存在
使用
in
关键字检查键是否存在于字典中。person = {"name": "aini", "age": 23} print("name" in person) # 输出 True print("city" in person) # 输出 False
10.3 字典的常用方法(掌握)
Python 提供了多种方法来操作字典,这些方法可以帮助我们进行遍历、更新和获取键值对等操作。
10.3.1 keys()
:获取所有键
使用
keys()
方法返回字典中所有键的视图。person = {"name": "aini", "age": 23} print(person.keys()) # 输出 dict_keys(['name', 'age'])
10.3.2 values()
:获取所有值
使用
values()
方法返回字典中所有值的视图。person = {"name": "aini", "age": 23} print(person.values()) # 输出 dict_values(['aini', 23])
10.3.3 items()
:获取所有键值对
使用
items()
方法返回字典中所有键值对的视图,每个键值对以元组形式表示。person = {"name": "aini", "age": 23} print(person.items()) # 输出 dict_items([('name', 'aini'), ('age', 23)])
10.3.4 update()
:更新字典
使用
update()
方法将另一个字典或键值对序列合并到当前字典中,若有重复键则更新值。person = {"name": "aini", "age": 23} additional_info = {"city": "Shanghai", "age": 24} person.update(additional_info) print(person) # 输出 {'name': 'aini', 'age': 24, 'city': 'Shanghai'}
10.3.5 pop()
和 popitem()
:删除键值对
pop(key)
:删除并返回指定键的值。popitem()
:随机删除并返回字典中的最后一个键值对(Python 3.7 以后为删除最后一对)。person = {"name": "aini", "age": 23, "city": "Shanghai"} age = person.pop("age") # 删除并返回 'age' 的值 last_item = person.popitem() # 随机删除并返回最后一个键值对 print(age) # 输出 23 print(last_item) # 输出 ('city', 'Shanghai')
10.3.6 clear()
:清空字典
使用
clear()
方法删除字典中的所有键值对,将字典清空。person = {"name": "aini", "age": 23} person.clear() print(person) # 输出 {}
10.4 字典的遍历(掌握)
字典遍历是字典操作中非常常见的一部分,通常用于处理每一个键值对。
遍历键:
person = {"name": "aini", "age": 23} for key in person.keys(): print(key)
遍历值:
for value in person.values(): print(value)
遍历键值对:
for key, value in person.items(): print(f"{key}: {value}")
10.5 字典的嵌套(掌握)
字典可以包含其他字典,形成嵌套结构,用于表示更复杂的数据关系。
示例:
student = { "name": "aini", "age": 23, "courses": { "math": 90, "science": 85 } } print(student["courses"]["math"]) # 输出 90
10.6 字典生成式(掌握)
字典生成式(Dictionary Comprehension)是一种简洁的生成字典的方式,可以用一行代码创建一个新的字典,常用于数据处理和过滤。
基本语法:
{key_expr: value_expr for item in iterable if condition}
示例:
squares = {x: x**2 for x in range(1, 6)} print(squares) # 输出 {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
10.7 字典的拷贝(了解)
字典的拷贝分为浅拷贝和深拷贝。
10.7.1 浅拷贝
浅拷贝只复制字典的第一层元素,嵌套的字典仍然是引用。
original = {"name": "aini", "courses": {"math": 90}} shallow_copy = original.copy() shallow_copy["courses"]["math"] = 100 print(original) # 输出 {'name': 'aini', 'courses': {'math': 100}}
10.7.2 深拷贝
深拷贝递归地复制所有层级的元素,使用
copy
模块中的deepcopy()
实现。import copy original = {"name": "aini", "courses": {"math": 90}} deep_copy = copy.deepcopy(original) deep_copy["courses"]["math"] = 100 print(original) # 输出 {'name': 'aini', 'courses': {'math': 90}}
10.8 字典的使用场景(了解)
字典适合用于存储和查找数据的场景,尤其是在以下情况中:
- 数据映射:存储键值对关系,如用户信息、配置数据等。
- 计数:可以用字典来统计元素出现的频率。
- 多层数据结构:当需要存储多层数据时,字典嵌套是常用方式。
示例:计数应用:
words = ["apple", "banana", "apple", "cherry"] word_count = {} for word in words: word_count[word] = word_count.get(word, 0) + 1 print(word_count) # 输出 {'apple': 2, 'banana': 1, 'cherry': 1}
1 条评论
正能量充沛,给予读者行动勇气。