python中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])



deque(双端队列)是Python标准库collections模块的一种数据结构,它可以在队列的两端进行添加和删除操作,因此可以用于实现栈和队列。 deque支持的操作包括: 1. append(x):在deque的右端添加元素x。 2. appendleft(x):在deque的左端添加元素x。 3. clear():清空deque。 4. count(x):返回deque元素x的个数。 5. extend(iterable):在deque的右端添加可迭代对象iterable的所有元素。 6. extendleft(iterable):在deque的左端添加可迭代对象iterable的所有元素,注意添加顺序与iterable的顺序相反。 7. pop():删除并返回deque右端的元素。 8. popleft():删除并返回deque左端的元素。 9. remove(x):删除deque第一个值为x的元素,如果没有找到则抛出ValueError异常。 10. reverse():将deque的元素反转。 11. rotate(n=1):将deque的元素向右移动n步,如果n为负数则向左移动。移动的元素会从deque的一端移动到另一端,因此deque的长度不变。 使用deque需要先导入collections模块: ``` from collections import deque ``` 然后可以通过以下方式创建一个deque对象: ``` d = deque() ``` 也可以通过传入一个可迭代对象来初始化deque: ``` d = deque([1, 2, 3]) ``` 使用deque的操作与列表类似,例如: ``` d.append(4) d.appendleft(0) d.extend([5, 6]) d.extendleft([-1, -2]) d.pop() d.popleft() d.remove(3) d.reverse() d.rotate(2) ``` 注意,由于deque支持在两端进行添加和删除操作,因此它的时间复杂度比列表更优秀,特别是在涉及到大量添加和删除操作的场景
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值