Python提供了多种内置的数据结构,如列表(list)、元组(tuple)、集合(set)和字典(dictionary),它们在数据处理和分析中非常有用。以下是一些常见的数据结构及其应用示例:
-
列表(List):
- 列表是有序的集合,可以包含不同类型的元素。
- 应用:存储一系列相关的数据,如学生的成绩、电影评分等。
scores = [90, 85, 78, 92] # 存储学生的成绩
-
元组(Tuple):
- 元组与列表类似,但一旦创建就不能被修改。
- 应用:表示不可变的数据序列,如坐标、颜色代码等。
coordinates = (3, 4) # 表示二维平面上的点
-
集合(Set):
- 集合是无序的,且不允许重复元素。
- 应用:去除重复数据,检查元素是否存在,执行集合运算(如并集、交集)。
unique_numbers = {1, 2, 3, 4, 4, 5} # 去除重复的数字 common_elements = {1, 2} & {2, 3} # 求两个集合的交集
-
字典(Dictionary):
- 字典是由键值对组成的无序集合。
- 应用:存储具有唯一键的数据,快速查找和关联数据。
student_info = {'name': 'Alice', 'age': 20, 'major': 'Computer Science'} # 快速查找学生的年龄 age = student_info['age']
-
栈(Stack):
- 栈是一种后进先出(LIFO)的数据结构。
- 应用:实现括号匹配、深度优先搜索等。
stack = [] stack.append(1) # 入栈 stack.append(2) stack.pop() # 出栈
-
队列(Queue):
- 队列是一种先进先出(FIFO)的数据结构。
- 应用:实现任务调度、缓冲处理等。
from collections import deque queue = deque() queue.append(1) # 入队 queue.popleft() # 出队
-
链表(LinkedList):
- 链表是由节点组成的线性数据结构,每个节点包含数据和指向下一个节点的指针。
- 应用:实现动态内存分配、链表操作等。
class Node: def __init__(self, data): self.data = https://www.yisu.com/ask/data>
-
树(Tree):
- 树是一种分层的数据结构,由节点组成,每个节点有零个或多个子节点。
- 应用:实现文件系统、数据库索引、JSON数据结构等。
class TreeNode: def __init__(self, key): self.left = None self.right = None self.val = key # 构建二叉搜索树 root = TreeNode(10) root.left = TreeNode(5) root.right = TreeNode(15) root.left.left = TreeNode(3) root.left.right = TreeNode(7)
-
图(Graph):
- 图是由顶点和边组成的数据结构,顶点表示实体,边表示实体之间的关系。
- 应用:实现社交网络分析、路径规划、网络爬虫等。
from collections import defaultdict graph = defaultdict(list) graph['A'].append('B') graph['A'].append('C') graph['B'].append('D') graph['B'].append('E') graph['C'].append('F')
这些数据结构在不同的应用场景中有各自的优势和适用性。了解并掌握它们的使用方法对于编写高效、可维护的Python代码至关重要。