使用Python编写的常用数据结构
Python是广泛使用的编程语言,也是数据科学、人工智能及机器学习的热门语言之一。Python有很多内置的数据结构,如字符串、列表、元组、集合和字典等。
以下是Python中最常见的数据结构,以及它们的用途和示例代码。
1. 列表
列表是Python中最基本和最常用的数据结构之一。它是一个有序的序列,包含一组元素,元素可以是任何数据类型,如整数、浮点数、字符串或对象。列表用[]来表示,并且可以被修改。
创建一个列表:
fruits = ['apple', 'banana', 'orange']
2. 元组
元组与列表非常相似,但是它们是不可变的,一旦创建了一个元组,就不能再修改它。元组用()来表示。
创建一个元组:
numbers = (1, 2, 3, 4, 5)
3. 字典
字典是一种映射数据类型,表示多个键值对的集合。每个键值对由一个键和一个值组成,用:{}表示,键和值之间用冒号分隔。
创建一个字典:
ages = {'John': 30, 'Jane': 25, 'Bob': 50}
4. 集合
集合是一个无序、不可重复的集合,它是Python中的一种基本数据结构,在很多情况下可以替代列表和元组。集合用{}表示。
创建一个集合:
numbers = {1, 2, 3, 4, 5}
5. 栈
栈是一种特殊的列表,只能通过顶部添加或删除元素。在Python中,栈可以使用列表进行实现。
创建一个栈:
stack = [3, 4, 5]
6. 队列
队列是另一种常见的数据结构,与栈非常相似,但是通过队尾添加元素,并且通过队首删除元素。在Python中,队列可以使用列表或者Queue模块进行实现。
创建一个队列:
queue = [1, 2, 3]
7. 链表
链表是一种线性数据结构,它包含节点,每个节点包含数据和指向下一个节点的指针。在Python中,链表可以通过类和指针来实现。
创建一个链表:
class Node:
def __init__(self, data):
self.data = data
self.next = None
head = Node("A")
print(head.data)
8. 堆
堆是一种二叉树,它的父节点和子节点之间具有特殊的顺序关系。在Python中,堆可以使用heapq模块进行实现。
创建一个堆:
import heapq heap = [] heapq.heappush(heap, 3) heapq.heappush(heap, 1) heapq.heappush(heap, 2) print(heapq.heappop(heap))
9. 树
树是一种非线性数据结构,它由节点和边组成。在Python中,树可以使用类来实现。
创建一个树:
class Node:
def __init__(self, data):
self.left = None
self.right = None
self.data = data
root = Node(1)
root.left = Node(2)
root.right = Node(3)
10. 图
图是一种非线性数据结构,它由节点和边组成。在Python中,图可以使用类来实现。
创建一个图:
class Graph:
def __init__(self, nodes):
self.nodes = nodes
self.adj_list = {node: [] for node in nodes}
def add_edge(self, u, v):
self.adj_list[u].append(v)
self.adj_list[v].append(u)
graph = Graph(["A", "B", "C", "D"])
graph.add_edge("A", "B")
graph.add_edge("B", "C")
