Python中主要数据结构的使用

数组

使用内置类型list实现,主要有如下操作:

array = []
array.append(1)
length = len(array)
if not array:
	# 列表为空
	print("array is empty")

队列 queue

queue模块提供了一个Queue类,实现了线程安全的队列,主要有如下操作:

from queue import Queue
my_queue = Queue()
# 出队
my_queue.put(1)
# 入队
removed_element = my_queue.get()
is_empty = Queue.empty()

双端队列 deque

collections模块提供了deque类,实现了双端队列,允许从队列的两端进行插入和删除操作。

from collections import deque
my_deque = deque()
# 在队列的右侧插入元素
my_deque.append(1)
# 在队列的左侧插入元素
my_deque.appendleft(0)
# 从队列的右侧删除元素
right_element = my_deque.pop()
# 从队列的左侧删除元素
left_element = my_deque.popleft()

栈 stack

使用list实现,主要操作如下:

my_stack = []
my_stack.append(1)
# 从栈顶删除元素
removed_element = my_stack.pop()
# 获得栈顶元素
top = my_stack[-1]

优先队列 priority_queue

heapq模块实现了最小堆,可用来充当优先队列,主要操作如下:

import heapq
# 创建一个空的优先队列
my_priority_queue = []
# 添加元素到优先队列
heapq.heappush(my_priority_queue, 3)
heapq.heappush(my_priority_queue, 1)
heapq.heappush(my_priority_queue, 2)
# 从优先队列中弹出最小元素
min_element = heapq.heappop(my_priority_queue)
# 访问最小的元素,但不弹出
print(my_priority_queue[0])
# 将list x转换成堆
x = [4, 2, 1, 3]
heapq.heapify(x)

如果需要使用最大堆,在添加元素和弹出元素的时候,将元素取负即可。

集合 set

在Python中,内置的set类型是一种无序且不重复的数据集合,底层实现方式为哈希表,主要操作如下:

# 创建一个空集合
my_set = set()
# 创建一个包含元素的集合
my_set = {1, 2, 3, 4, 5}
# 添加元素到集合
my_set.add(6)
# 从集合中移除元素
my_set.remove(2)
# 检查元素是否在集合中
is_present = 3 in my_set
# 获取集合的长度(元素个数)
size = len(my_set)
# 进行集合的交集、并集
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
intersection = set1 & set2  # 交集
union = set1 | set2  # 并集

映射/字典 map

使用字典实现,底层实现方式为哈希表,主要操作如下:

# 创建一个空的map
my_map = {}
# 创建一个包含键值对的map
my_map = {'apple': 1, 'banana': 2, 'orange': 3}
# 添加键值对到map
my_map['grape'] = 4
# 获取map中的值
apple_value = my_map['apple']
# 检查键是否存在于map中
is_present = 'banana' in my_map
# 获取map的键的列表和值的列表
keys = list(my_map.keys())
values = list(my_map.values())
# 遍历map中的键值对
for key, value in my_map.items():
    print(key, value)
# 删除map中的键值对
del my_map['orange']
# 清空map
my_map.clear()

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-07 05:22:01       14 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-07 05:22:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-07 05:22:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-07 05:22:01       18 阅读

热门阅读

  1. 网络安全介绍

    2024-04-07 05:22:01       17 阅读
  2. 解释Python中的lambda函数及其用途

    2024-04-07 05:22:01       15 阅读
  3. 【Linux】05.部署Microsoft SQL Server

    2024-04-07 05:22:01       17 阅读
  4. 我的创作纪念日

    2024-04-07 05:22:01       15 阅读
  5. MySQL里面慢查询优化指南:从定位到优化

    2024-04-07 05:22:01       15 阅读
  6. PostCSS安装以及使用详解

    2024-04-07 05:22:01       22 阅读
  7. HART报文详解

    2024-04-07 05:22:01       14 阅读