deque 栈
队
deque模块是python标准库collections中的一项,它提供了两端都可以操作的序列,这意味着,在序列的前后你都可以执行添加或删除操作。
1.创建deque序列:
from collections import deque
d=deque()
2.deque提供了类似list的操作方法:
d=deque()
d.append(3)
d.append(8)
d.append(1)
那么此时d=deque([3,8,1]),len(d)=3,d[0]=3,d[-1]=1
3.两端都使用pop:
d=deque(‘12345’)
那么d=deque(['1', '2', '3', '4', '5'])
d.pop()抛出的是’5’,d.leftpop()抛出的是’1’,可见默认pop()抛出的是最后一个元素。
4.限制deque的长度
d=deque(maxlen=20)
for i in range(30):
d.append(str(i))
此时d的值为d=deque(['10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29'], maxlen=20),可见当限制长度的deque增加超过限制数的项时,另一边的项会自动删除。
5.添加list各项到deque中:
d=deque([1,2,3,4,5])
d.extend([0])
那么此时d=deque([1,2,3,4,5,0])
d.extendleft([6,7,8])
此时d=deque([8, 7, 6, 1, 2, 3, 4, 5, 0])
栈
Stack(栈):数据先进后出,类比放盘子,最先放的盘子最后拿出;最后放的盘子最先拿出
>>> stack=[]
>>> stack.append(1)
>>> stack.append(2)
>>> stack.append(3)
>>> stack
[1, 2, 3]
>>> stack.pop() # 弹出栈顶元素
3
>>> stack.pop()
2
>>> stack
[1]
>>> stack.pop()
1
>>> stack
[]
>>> stack.pop()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: pop from empty list
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix