python内置模块deque

deque是double-ended queue的缩写, 叫做双端队列,可以实现从队列头部快速增加和取出对象: popleft()和appendleft()

虽然list也有pop()和append的方法,但是时间复杂度是O(n),而使用deque是复杂度为O(1).

还有其他的方法如下:

append:同list的append,在队尾加入一个元素

appendleft:在队首加入一个元素

clear:清空队列

copy:浅拷贝,b=a.copy(),关于深浅拷贝的区别,浅拷贝复制的是引用,深拷贝的话复制的是不可变元素的引用和可变元素的复制;我觉得一篇文章写得特别好,请关注https://blog.csdn.net/qq_32907349/article/details/52190796

count:a.count(1),a中1的数量

extend:参数是一个可迭代变量,在右端按照迭代顺序添加

extendleft:同上,不过是在左端按照迭代顺序添加

index:和list的相类似,用于找出某个值第一个匹配项的索引位置。

insert:和list的相同,插入元素insert(index,obj),在index前插入元素,如果index超过长度就会插到最后,如果长度已经是最长,再插入会报错

maxlen:用于定义的时候使用,不是一个可以被writed的对象,形如a.maxlen=10会报错

pop:队尾元素删去

popleft:队头元素删去

remove:同list:用于移除列表中某个值的第一个匹配项。

reverse:倒序

rotate:循环移动,为正全体右移,为负全体左移

from collections import deque
# 创建 a = deque(iterable, maxlen)
a = deque((1,))
a = deque(maxlen=5) # 创建一个长度为5的空双端队列
a = deque() # 创建空的双端队列
a = deque([1, 2, 3], maxlen=2)
# 追加和扩展队列
a.append(3)
a.append(4)
a.append(5) # 因为设置了maxlen的最大长度为2,因此每次append一个元素,最左边的就会自动弹出
a.appendleft('t')
a.extend(['m','t','j'])
a.extendleft(['l','h','h'])
# 出队列
d = deque('123456tsy') # 将字符串分割成字符
d.pop()
d.popleft() # 弹出最左侧元素
# 清空队列
d.clear()
# 返回指定元素的出现次数
d.count('3')
# 查找某个元素的索引位置
d.index('l')
d.index('l', 0, 5) # 指定查找区间
# 在指定位置插入元素
d.insert(2, 'f')
# 删除指定元素, 注意只能删除找到的指定元素的第一个
d.remove('h')
# 反转队列
d.reverse()
print(d)
# 循环移动队列中的元素
d.rotate(-2) # 整体循环左移两步
d.rotate(3) # 整体循环右移三步

 

转自 https://www.cnblogs.com/mangmangbiluo/articles/9805939.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值