摘要:在 Python 中,字典(dict)是非常重要的数据结构,它用于存储以“键-值”对形式组织的数据。字典是无序的、可变的、并且键是唯一的。字典非常适合用于查找、插入和删除元素,它广泛应用于各种场景,如缓存、数据库记录、配置信息等。
ps:文中代码块可以长按复制,左滑拖动查看全部
在 Python 中,字典(dict)是非常重要的数据结构,它用于存储以“键-值”对形式组织的数据。字典是无序的、可变的、并且键是唯一的。字典非常适合用于查找、插入和删除元素,它广泛应用于各种场景,如缓存、数据库记录、配置信息等。
本文将从基本概念开始,逐步讲解 Python 字典的常见操作、方法、性能、以及一些高级用法。
字典是一个由键-值对组成的无序集合,其中每个键(key)都对应一个值(value)。字典中的键是唯一的,但值可以重复。字典的键必须是不可变类型(如字符串、数字、元组等),而值可以是任何数据类型。
字典的创建:
# 创建字典的几种方式person = {'name': 'Alice', 'age': 25, 'city': 'New York'}上述代码创建了一个字典 person,它包含了3个键值对:name、age 和 city。
字典中的值是通过键来访问的。你可以使用 来访问字典中指定键对应的值。
# 访问字典中的元素print(person['name']) # 输出 'Alice'print(person['age']) # 输出 25如果你访问的键不存在,Python 会抛出 KeyError 异常:
# 键不存在时会抛出 KeyErrorprint(person['gender']) # 会抛出 KeyError: 'gender'为避免这种错误,可以使用 get 方法,它在键不存在时返回 None(或者返回你指定的默认值):
print(person.get('gender')) # 输出 Noneprint(person.get('gender', 'Unknown')) # 输出 'Unknown'字典是可变的,因此可以直接修改其中的值。通过指定键来更新对应的值:
# 修改字典中的元素person['age'] = 30 # 修改 age 为 30print(person) # {'name': 'Alice', 'age': 30, 'city': 'New York'}如果键不存在,则会添加新的键值对:
# 添加新键值对person['gender'] = 'Female'print(person) # {'name': 'Alice', 'age': 30, 'city': 'New York', 'gender': 'Female'}可以使用 del 语句或 pop 方法来删除字典中的元素。
del:用于删除字典中指定键的元素。# 删除字典中的元素del person['city'] # 删除键为 'city' 的元素print(person) # {'name': 'Alice', 'age': 30, 'gender': 'Female'}pop:通过键删除字典中的元素,并返回被删除的值。# 使用 pop 删除元素并返回其值age = person.pop('age') # 删除 'age' 键,并返回对应的值print(age) # 输出 30print(person) # {'name': 'Alice', 'gender': 'Female'}popitem:删除并返回字典中的一个键值对(通常是最后插入的键值对,Python 3.7+)。# 使用 popitem 删除并返回一个键值对item = person.popitemprint(item) # ('gender', 'Female')print(person) # {'name': 'Alice'}clear:清空字典中的所有键值对。# 清空字典person.clearprint(person) # 输出 {}你可以使用多种方式来遍历字典:
遍历键(keys):# 遍历字典中的键for key in person.keys: print(key)遍历值(values):# 遍历字典中的值for value in person.values: print(value)遍历键值对(items):# 遍历字典中的键值对for key, value in person.items: print(f"{key}: {value}")Python 字典提供了一些常用的方法来进行操作:
update:用另一个字典或键值对更新当前字典。如果键已经存在,值会被更新;如果键不存在,会新增键值对。# 更新字典person.update({'age': 35, 'city': 'Boston'})print(person) # {'name': 'Alice', 'age': 35, 'gender': 'Female', 'city': 'Boston'}setdefault:返回键的值,如果键不存在,则插入键,并赋予默认值。# 如果 'gender' 不存在,则插入默认值 'Unknown'gender = person.setdefault('gender', 'Unknown')print(gender) # 输出 'Female'print(person) # {'name': 'Alice', 'age': 35, 'gender': 'Female', 'city': 'Boston'}keys、values、items:分别返回字典中所有键、值和键值对的视图对象(view)。# 获取键、值和键值对的视图print(person.keys) # dict_keys(['name', 'age', 'gender', 'city'])print(person.values) # dict_values(['Alice', 35, 'Female', 'Boston'])print(person.items) # dict_items([('name', 'Alice'), ('age', 35), ('gender', 'Female'), ('city', 'Boston')])字典在 Python 中是通过哈希表实现的,因此它提供了快速的查找、插入和删除操作。大多数情况下,字典的操作时间复杂度为 O(1)。
嵌套字典:字典可以作为值存储其他字典,形成嵌套结构。students = { 'Alice': {'age': 25, 'major': 'Computer Science'}, 'Bob': {'age': 22, 'major': 'Mathematics'}}print(students['Alice']['major']) # 输出 'Computer Science'字典推导式:类似于列表推导式,可以用来创建新的字典。# 字典推导式squares = {x: x**2 for x in range(5)}print(squares) # 输出 {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}Python 中的字典(dict)是一种非常灵活且高效的数据结构。它提供了通过键访问、修改、删除值的功能,并且支持多种方法和操作来满足开发中的需求。字典的无序性和键值对结构使得它适用于很多场景,例如配置管理、存储 JSON 数据、缓存实现等。
掌握字典的基本操作、常用方法和高级应用,有助于你在 Python 编程中更加高效地处理数据。
来源:记史惜今