Python--加强版列表(deque)

本文介绍了Python collections模块中的deque,它是一个加强版的列表,支持所有列表方法并具备额外特性。例如,可以使用maxlen限制成员个数,实现自动淘汰旧成员。此外,deque提供appendleft和popleft方法,方便在队列头部进行操作。通过这些特性,deque在某些场景下比普通列表更高效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python中的collections模块提供了很多有用的集合类,其中的deque可以称得上是加强版的列表。

deque基本具备所有的列表方法:

from collections import deque
q=deque([1,2,3])
q.append(1)
print(q)
q.extend([4,5])
print(q)
q.pop()
print(q)
运行结果:

deque([1, 2, 3, 1])
deque([1, 2, 3, 1, 4, 5])
deque([1, 2, 3, 1, 4])

deque(当然)和列表一样也是iterable的:

m=map(str,q)
print(list(m))


map函数接收两个参数,第一个为函数,第二个为iterable对象。它将iterable成员依次传递给函数,返回一个map对象。(详细了解:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014317852443934a86aa5bb5ea47fbbd5f35282b331335000)

运行结果如下,很容易得将数字队列转化为对应的字符串列表

['1', '2', '3', '1', '4']

除了这些list可以满足的功能以外,deque还有两个list不具备的‘黑魔法’。

  技能一:限制成员个数

在创建队列时,通过maxlen来限制成员个数,当新成员加入且队列已满时,旧的成员会被自动删除。

from collections import deque
q=deque([1,2,3],maxlen=3)
q.append(4)
print(q)

上面一段代码运行结果:
deque([2, 3, 4], maxlen=3)
技能二:操作队列头

使用list时,append与pop方法只针对列表尾,如果想要在队列的开头增添或删除成员,则需要deque的appendleft和popleft方法:

from collections import deque
q=deque([1,2,3])
q.appendleft(4)
q.appendleft(5)
print(q)
q.popleft()
print(q)

上面一段代码运行结果是很明显的:

deque([5, 4, 1, 2, 3])
deque([4, 1, 2, 3])




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值