目录
1. 引言
在 Python 中,数据结构是存储和组织数据的一种方式。数据结构不仅仅有助于高效存储数据,还能影响程序的执行效率。Python 提供了几种常用的数据结构,如列表、元组、字典和集合等,每种数据结构具有独特的特性和使用场景。
本教程将详细介绍 Python3 中常用的数据结构,帮助您了解其定义、特性以及如何创建和使用它们。
2. Python3 数据结构概述
Python 中的常用数据结构包括:
- 列表(List):有序集合,可变,支持索引、切片、拼接等操作。
- 元组(Tuple):有序集合,不可变,通常用于存储不需要修改的数据。
- 字典(Dictionary):无序集合,由键值对组成,键是唯一的。
- 集合(Set):无序且不重复的集合,用于成员关系测试和去重操作。
- 堆栈(Stack):遵循后进先出(LIFO)原则的数据结构。
- 队列(Queue):遵循先进先出(FIFO)原则的数据结构。
- 链表(Linked List):由节点组成的线性数据结构,每个节点包含数据和指向下一个节点的引用。
3. 列表
3.1 定义与特性
- 定义:列表是一个有序集合,用方括号
[]
表示,元素可以是任意类型。 - 特性:
- 可变:可以修改、添加或删除元素。
- 有序:按插入顺序排序。
- 支持索引和切片操作。
3.2 创建与操作
创建列表的方法:
# 直接创建
lst = [1, 2, 3]
# 空列表
empty_lst = []
# 使用 range() 创建列表
lst_range = list(range(5))
常见操作:
- 添加元素:
append()
,insert()
- 删除元素:
remove()
,pop()
- 访问元素:索引和切片
- 长度:
len()
3.3 常见操作示例
lst = [1, 2, 3, 4]
lst.append(5) # 添加元素
print(lst) # 输出: [1, 2, 3, 4, 5]
lst.insert(2, 'a') # 插入元素
print(lst) # 输出: [1, 2, 'a', 3, 4, 5]
lst.remove(3) # 删除元素
print(lst) # 输出: [1, 2, 'a', 4, 5]
print(lst[2]) # 索引访问: 输出 'a'
4. 元组
4.1 定义与特性
- 定义:元组是一个有序集合,用圆括号
()
表示,元素不可变。 - 特性:
- 不可变:创建后不可更改,适用于存储不需要修改的数据。
- 支持索引和切片。
- 轻量级:比列表占用更少内存。
4.2 创建与操作
# 直接创建
tup = (1, 2, 3)
# 空元组
empty_tup = ()
# 单元素元组
single_tup = (1,)
常见操作:与列表操作类似,但无法修改元素。
4.3 常见操作示例
tup = (1, 2, 3, 4)
print(tup[2]) # 输出: 3
# 切片操作
print(tup[1:3]) # 输出: (2, 3)
5. 字典
5.1 定义与特性
- 定义:字典是由键值对组成的无序集合,用大括号
{}
表示,键是唯一的。 - 特性:
- 可变:可以修改、添加或删除键值对。
- 键是唯一且不可变的,值可以是任何数据类型。
5.2 创建与操作
# 直接创建
dct = {'name': 'Alice', 'age': 25}
# 空字典
empty_dct = {}
常见操作:访问、修改、删除键值对
5.3 常见操作示例
dct = {'name': 'Alice', 'age': 25}
print(dct['name']) # 输出: Alice
dct['age'] = 26 # 修改值
print(dct) # 输出: {'name': 'Alice', 'age': 26}
del dct['age'] # 删除键值对
print(dct) # 输出: {'name': 'Alice'}
6. 集合
6.1 定义与特性
- 定义:集合是一个无序且不重复的元素集合,用大括号
{}
表示。 - 特性:
- 无序:元素没有索引。
- 元素唯一:重复的元素会被自动去重。
6.2 创建与操作
# 创建集合
s = {1, 2, 3, 4}
# 空集合
empty_set = set()
常见操作:添加、删除元素,集合运算
6.3 常见操作示例
s = {1, 2, 3}
s.add(4) # 添加元素
print(s) # 输出: {1, 2, 3, 4}
s.remove(3) # 删除元素
print(s) # 输出: {1, 2, 4}
7. 堆栈
7.1 定义与特性
- 定义:堆栈遵循后进先出(LIFO)原则,最后添加的元素最先被移除。
- 特性:
- 常见操作:
push()
添加元素,pop()
移除元素。
- 常见操作:
7.2 实现方式与操作
堆栈可以使用列表实现,append()
用于添加元素,pop()
用于移除元素。
stack = []
stack.append(1) # 入栈
stack.append(2)
print(stack.pop()) # 出栈: 输出 2
8. 队列
8.1 定义与特性
- 定义:队列遵循先进先出(FIFO)原则,第一个添加的元素最先被移除。
- 特性:
- 常见操作:
enqueue()
添加元素,dequeue()
移除元素。
- 常见操作:
8.2 实现方式与操作
队列可以通过 collections.deque
实现,它支持高效的队尾添加和队首删除操作。
from collections import deque
queue = deque()
queue.append(1) # 入队
queue.append(2)
print(queue.popleft()) # 出队: 输出 1
9. 链表
9.1 定义与特性
- 定义:链表是一种线性数据结构,由多个节点组成,每个节点包含数据和指向下一个节点的引用。
- 特性:
- 节点有两个部分:数据和指向下一个节点的引用。
9.2 实现方式与操作
链表通常由类定义,可以通过创建节点类和链表类来实现。以下是一个简单的链表实现示例。
class Node:
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def append(self, data):
new_node = Node(data)
if not self.head:
self.head = new_node
else:
last = self.head
while last.next:
last = last.next
last.next = new_node
10. 结论
Python 提供了多种数据结构,适用于不同的应用场景。了解和掌握这些数据结构对于编写高效且易维护的代码至关重要。常用的数据结构如列表、元组、字典和集合为日常开发提供了强大支持,而堆栈、队列和链表则用于处理更复杂的应用场景。
11. 参考资料
站内链接:
发表回复