【python基础知识】字典
文章目录
- 字典的基本操作(键值对操作)
- 创建字典
- 访问值
- 修改和添加键值对
- 删除键值对
- 检查键是否存在
- 遍历字典
- 遍历所有键
- 遍历所有值
- 遍历键值对
- 按顺序遍历字典
- 字典嵌套(列表嵌套字典)
- 列表嵌套字典
- 字典嵌套字典
- 字典嵌套列表
- 字典常用方法速查表
- 总结
在Python中,字典(Dictionary)是一种无序的键值对(key-value)集合,它通过哈希表实现,支持快速查找、插入和删除操作。本文将详细介绍字典的核心操作、遍历技巧以及嵌套应用。
字典的基本操作(键值对操作)
字典使用花括号 {}
表示,每个键值对用冒号 :
分隔。
创建字典
# 空字典
empty_dict = {}# 包含键值对的字典
person = {"name": "Alice","age": 30,"city": "New York"
}# 使用dict()构造函数
car = dict(make="Toyota", model="Corolla", year=2020)
访问值
# 通过键访问值
print(person["name"]) # 输出: Alice# 使用get()方法(推荐,避免KeyError)
print(person.get("age")) # 输出: 30
print(person.get("gender", "Unknown")) # 不存在时返回默认值
修改和添加键值对
# 修改现有值
person["age"] = 31 # 更新年龄# 添加新键值对
person["job"] = "Engineer" # 新增job键# 使用update()方法批量添加/更新
person.update({"country": "USA", "age": 32})
删除键值对
# 使用del删除指定键
del person["city"]# 使用pop()删除并返回值
age = person.pop("age") # 返回32,person中不再有age键# 删除所有键值对
person.clear() # 结果: {}
检查键是否存在
if "name" in person:print("Name exists!")
遍历字典
字典支持多种遍历方式,可以遍历键、值或键值对。
遍历所有键
# 方式1:直接遍历(默认遍历键)
for key in person:print(key)# 方式2:使用keys()方法(更明确)
for key in person.keys():print(key)
遍历所有值
for value in person.values():print(value)
遍历键值对
# 方式1:使用items()方法
for key, value in person.items():print(f"{key}: {value}")# 方式2:先获取键,再通过键访问值
for key in person:print(f"{key}: {person[key]}")
按顺序遍历字典
# 按键排序后遍历
for key in sorted(person.keys()):print(f"{key}: {person[key]}")
字典嵌套(列表嵌套字典)
字典和列表可以相互嵌套,用于表示复杂数据结构。
列表嵌套字典
# 存储多个用户信息
users = [{"name": "Alice", "age": 30},{"name": "Bob", "age": 25},{"name": "Charlie", "age": 35}
]# 访问第二个用户的姓名
print(users[1]["name"]) # 输出: Bob# 添加新用户
users.append({"name": "David", "age": 28})# 遍历所有用户
for user in users:print(f"{user['name']} is {user['age']} years old.")
字典嵌套字典
# 存储学生成绩
students = {"Alice": {"math": 95, "english": 88},"Bob": {"math": 76, "english": 92},"Charlie": {"math": 89, "english": 78}
}# 访问Alice的数学成绩
print(students["Alice"]["math"]) # 输出: 95# 添加新科目成绩
students["Bob"]["science"] = 85# 计算平均成绩
for name, scores in students.items():avg = sum(scores.values()) / len(scores)print(f"{name}'s average score: {avg:.2f}")
字典嵌套列表
# 存储博客文章信息
blog = {"title": "Python Tutorial","author": "Alice","tags": ["python", "programming", "tutorial"],"comments": [{"user": "Bob", "content": "Great article!"},{"user": "Charlie", "content": "Very helpful"}]
}# 访问第一个评论的用户
print(blog["comments"][0]["user"]) # 输出: Bob# 添加新评论
blog["comments"].append({"user": "David", "content": "Thanks!"})
字典常用方法速查表
方法 | 描述 |
---|---|
get(key, default) | 返回指定键的值,如果键不存在则返回default值 |
keys() | 返回包含所有键的视图对象 |
values() | 返回包含所有值的视图对象 |
items() | 返回包含所有键值对的视图对象 |
update(other_dict) | 用另一个字典的键值对更新当前字典(存在则覆盖,不存在则添加) |
pop(key[, default]) | 删除指定键并返回其值,如果键不存在则返回default(若未指定则报错) |
popitem() | 随机删除并返回一个键值对(Python 3.7+ 按插入顺序删除最后一个) |
clear() | 删除字典中的所有键值对 |
copy() | 返回字典的浅拷贝 |
fromkeys(seq[, value]) | 创建一个新字典,以序列seq中的元素为键,值统一为value(默认None) |
总结
字典是Python中最灵活的数据结构之一,适用于存储和处理关联数据。掌握字典的核心操作、遍历技巧以及嵌套应用,能够让你更高效地处理复杂数据。建议通过实际项目练习来加深理解,比如解析JSON数据、实现缓存系统等。