在 Python3 中,数据结构是组织和存储数据的方式,它们决定了数据的访问方式、处理效率以及数据间的关系。Python 提供了多种内置数据结构,如列表(List)、元组(Tuple)、集合(Set)和字典(Dictionary),同时支持通过类来自定义数据结构。下面详细介绍这些数据结构的特点、用法及示例。
列表是可变的、有序的元素集合,用方括号 [] 表示。列表支持异构数据(可包含不同类型的元素)、索引访问、切片操作和动态调整大小。
- 动态长度:可随时添加或删除元素。
- 索引访问:通过
list[index] 访问元素,索引从 0 开始。
- 支持切片:使用
list[start:stop:step] 获取子列表。
- 常用方法:
append()、extend()、insert()、remove()、pop()、sort()、reverse() 等。
元组是不可变的、有序的元素集合,用圆括号 () 表示。元组一旦创建,其元素不能被修改、添加或删除,适合存储不可变数据(如坐标、配置参数)。
- 不可变性:创建后无法修改,保证数据安全。
- 索引访问:与列表类似,但不能修改元素。
- 支持切片:与列表类似,但返回新元组。
- 常用操作:拼接、计数、查找等。
集合是无序的、唯一的元素集合,用花括号 {} 或 set() 函数创建。集合主要用于去重和成员检测,支持数学集合运算(如并集、交集、差集)。
- 无序性:元素没有固定顺序,不能通过索引访问。
- 唯一性:集合中不允许重复元素。
- 可变但元素必须可哈希:集合本身可变,但元素必须是不可变类型(如数字、字符串、元组)。
- 常用操作:并集(
|)、交集(&)、差集(-)、对称差集(^)等。
字典是可变的、无序的键值对(key-value)集合,用花括号 {} 表示。字典通过键来快速查找对应的值,键必须是唯一且不可变的(如字符串、数字、元组)。
- 键值对存储:每个值对应一个唯一的键。
- 快速查找:基于哈希表实现,查找效率为 O (1)。
- 动态调整:可随时添加、修改或删除键值对。
- 常用方法:
get()、keys()、values()、items()、update() 等。
根据场景选择数据结构时,可参考以下原则:
- 需要有序且可重复的数据:使用列表(List)。
- 需要不可变数据:使用元组(Tuple)。
- 需要去重或集合运算:使用集合(Set)。
- 需要键值对映射:使用字典(Dictionary)。
除了内置数据结构,Python 还支持通过类(Class)自定义数据结构。例如,实现一个简单的栈(Stack):
class Stack:def __init__(self):self.items = []
通过掌握这些数据结构及其适用场景,你可以更高效地组织和处理数据,提升代码的可读性和性能。