Python--加强版列表(deque)

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

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)

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

dequePython标准库collections中的一项数据结构。它是一个双端队列,可以在序列的前后都进行添加或删除操作。与列表相比,deque在执行删除操作时效率更高。通过使用deque代替列表,可以使用deque.popleft()来代替list.pop(0),因为deque的删除操作是一个常数时间的操作,而列表的删除操作需要移动其他元素来填补空白,时间复杂度为O(n)。所以在需要频繁进行删除操作的情况下,使用deque比使用列表更高效。 在Python中,我们可以使用deque模块来创建deque对象,例如: ```python from collections import deque q = deque() ``` 以上代码创建了一个空的deque。可以通过调用`q.append()`和`q.appendleft()`方法在deque的尾部和头部添加元素,通过调用`q.pop()`和`q.popleft()`方法在deque的尾部和头部删除元素。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python deque模块简单使用代码实例](https://download.csdn.net/download/weixin_38507121/14910424)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python:【基础语法】 deque()用法](https://blog.csdn.net/zqx951102/article/details/128208737)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值