Python字典的核心概念

字典是Python中最强大、最常用的数据结构之一。它使用键值对(key-value pair)存储数据,提供极快的查找速度。

字典的主要特点:无序、可变、键唯一。字典通过哈希表实现,因此查找操作的时间复杂度为O(1),是高效的数据存储解决方案。

字典的创建方法

在Python中,有多种创建字典的方式:

# 1. 使用花括号创建字典 person = {'name': 'Alice', 'age': 30, 'city': 'New York'} # 2. 使用dict()构造函数 person = dict(name='Alice', age=30, city='New York') # 3. 从键值对序列创建 person = dict([('name', 'Alice'), ('age', 30), ('city', 'New York')]) # 4. 使用字典推导式 squares = {x: x*x for x in range(1, 6)} # 结果:{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

字典基本操作

访问字典元素

访问字典中的值有多种方法,每种方法有不同的特点:

直接访问

使用方括号和键名直接访问:

person = {'name': 'Alice', 'age': 30} print(person['name']) # 输出: Alice

注意:如果键不存在会引发KeyError

使用get()方法

安全访问方法,可设置默认值:

person = {'name': 'Alice', 'age': 30} print(person.get('city', 'Unknown')) # 输出: Unknown

当键不存在时返回None或指定的默认值

添加和修改元素

字典是可变的,可以轻松添加或修改元素:

# 创建空字典 book = {} # 添加元素 book['title'] = 'Python Guide' book['author'] = 'John Smith' book['year'] = 2023 # 修改元素 book['year'] = 2024 # 使用update()方法批量更新 book.update({'pages': 350, 'publisher': 'Tech Press'})

删除元素

从字典中删除元素有多种方法:

person = {'name': 'Alice', 'age': 30, 'city': 'NY'} # 1. 使用del删除指定键 del person['city'] # 2. 使用pop()删除并返回值 age = person.pop('age') # 3. 使用popitem()删除最后插入的项 key, value = person.popitem() # 4. 清空整个字典 person.clear()

高级字典操作

遍历字典

Python提供了多种遍历字典的方法:

student = {'name': 'Bob', 'age': 20, 'major': 'CS'} # 遍历所有键 for key in student: print(key) # 遍历所有值 for value in student.values(): print(value) # 遍历键值对 for key, value in student.items(): print(f"{key}: {value}")

字典推导式

字典推导式提供了一种优雅的创建字典的方法:

# 创建数字平方字典 squares = {x: x**2 for x in range(1, 6)} # 转换列表为字典 fruits = ['apple', 'banana', 'cherry'] fruit_lengths = {fruit: len(fruit) for fruit in fruits} # 条件筛选 even_squares = {x: x**2 for x in range(10) if x % 2 == 0}

字典合并

Python 3.9+ 提供了新的字典合并运算符:

# Python 3.9+ 的合并方法 dict1 = {'a': 1, 'b': 2} dict2 = {'b': 3, 'c': 4} # 使用 | 运算符 merged = dict1 | dict2 # {'a': 1, 'b': 3, 'c': 4} # 使用update()方法 dict1.update(dict2)

字典的最佳实践

字典是Python中最高效的数据结构之一,特别适合需要快速查找的场景。掌握字典的各种操作和高级技巧,可以显著提高代码的效率和可读性。

在实际应用中,合理选择字典方法、利用字典推导式以及理解字典的内部实现原理,将使你的Python编程能力更上一层楼。