python队列

本文详细介绍了Python中的list模拟队列、Queue和deque三种数据结构的实现方式,以及它们在性能上的区别,特别是deque在两端操作上的优势,指出deque比Queue快10倍以上。
摘要由CSDN通过智能技术生成

1.三种实现

  1. 列表:list
  2. 队列:Queue
  3. 双端队列:deque

性能:从上往下依次变好,其中deque比Queue快10倍以上

  1.1  list模拟队列

length = 10
q = []

# 入队
for i in range(length):
	q.append(i)
print(q)
print(len(q))

# 出队
for i in range(length):
	print(q[0], end = '')
	del q[0]
print(q)
print(len(q))

# 判断队空
if not q:
	print("empty")
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
10
0 1 2 3 4 5 6 7 8 9 
0
empty

1.2  Queue

1.2.1常用操作

q.put()从队尾插入
q.get()从对头删除,并返回元素
q.qsize()队列大小
q.empty()队列是否为空
from Queue import *
length = 10


q = Queue()				# 定义队列
for i in range(length):	
	q.put(i)			# 元素入队
print(q.qsize())		# 打印队列长度
print(q.empty)			# 判断队空
for i in range(length):
	element = q.get()	# 元素出队
	print(element,end = ' ')
print()
print(q.qsize())
print(q.empty)
10
False
0 1 2 3 4 5 6 7 8 9 
0
True

1.3  deque双端队列

1.3.1补充

双端队列和列表的区别

  1. 双端队列在开头添加/删除元素时,性能比列表好得多
  2. 双端队列下标访问的时间复杂度为O(N),而列表为O(1)

1.3.2 常用操作

from collections import deque

# 创建一个空的deque
d = deque()

# 从右侧添加元素
d.append('a')
d.append('b')
print(d)  # 输出:deque(['a', 'b'])

# 从左侧添加元素
d.appendleft('c')
print(d)  # 输出:deque(['c', 'a', 'b'])

# 从右侧移除元素
right_item = d.pop()
print(right_item)  # 输出:'b'
print(d)  # 输出:deque(['c', 'a'])

# 从左侧移除元素
left_item = d.popleft()
print(left_item)  # 输出:'c'
print(d)  # 输出:deque(['a'])
deque(['a', 'b'])
deque(['c', 'a', 'b'])
b
deque(['c', 'a'])
c
deque(['a'])

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值