Python-deque

Python-deque

list 的底层是数组(array),能胜任 stack 的角色,但其在前端的 pop(或 insert)的操作时间都是线性级的,其最大的时间空间消耗出现在存储元素增长超过当前数组分配的大小时,所有元素都必须移动到新的位置,尤其对于头部的插入与删除

如果需要频繁对两端进行增删,可考虑使用 collections.deque

  • deque 类的实现是一个块空间的双向链表,其中每个独立元素都是一个数组。提供了两端都可操作的序列

双向增删操作

  • append(元素)
    appendleft(元素)
  • extend(list)
    extendleft(list)
  • pop()
    popleft()
from collections import deque
d=deque()
d.append(3)
d.append(8)
d.append(1)

d=deque([3, 8, 1])
from collections import deque
d=deque([1,2,3,4,5])
d.extendleft([6,7,8])

d=deque([8, 7, 6, 1, 2, 3, 4, 5])

限制deque长度

from collections import deque
d=deque(maxlen=20)
for i in range(30):
    d.append(str(i))

d=deque(['10',
       '11',
       '12',
       '13',
       '14',
       '15',
       '16',
       '17',
       '18',
       '19',
       '20',
       '21',
       '22',
       '23',
       '24',
       '25',
       '26',
       '27',
       '28',
       '29'])
#当限制长度的deque增加超过限制数的项时,另一边的项会自动删除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值