python asyncio queue_简析Python中的四种队列

本文详细介绍了Python中的四种队列:collections.deque、queue.Queue、asyncio.Queue和multiprocessing.Queue。deque作为双端队列,提供了高效的操作方法和线程安全性;queue.Queue和asyncio.Queue适用于多线程和协程场景,提供FIFO、PriorityQueue和LifoQueue等类型;multiprocessing.Queue是进程安全的,基于Pipe构建,适合多进程通信,提供JoinableQueue支持join和task_done操作。
摘要由CSDN通过智能技术生成

队列是一种只允许在一端进行插入操作,而在另一端进行删除操作的线性表。

在Python文档中搜索队列(queue)会发现,Python标准库中包含了四种队列,分别是queue.Queue / asyncio.Queue / multiprocessing.Queue / collections.deque。

collections.deque

deque是双端队列(double-ended queue)的缩写,由于两端都能编辑,deque既可以用来实现栈(stack)也可以用来实现队列(queue)。

deque支持丰富的操作方法,主要方法如图:

相比于list实现的队列,deque实现拥有更低的时间和空间复杂度。list实现在出队(pop)和插入(insert)时的空间复杂度大约为O(n),deque在出队(pop)和入队(append)时的时间复杂度是O(1)。

deque也支持in操作符,可以使用如下写法:

q = collections.deque([1, 2, 3, 4])

print(5 in q) # False

print(1 in q) # True

deque还封装了顺逆时针的旋转的方法:rotate。

# 顺时针

q = collections.deque([1, 2, 3, 4])

q.rotate(1)

print(q) # [4, 1, 2, 3]

q.rotate(1)

print(q) # [3, 4, 1, 2]

# 逆时针

q = collections.deque(

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值