双端队列deque

deque也是C语言写的,性能较高

from collections import deque

将数据进行初始化,数据必须是可迭代对象

user_deque = deque(["hongshaorou1", "hongshaorou2", "hongshaorou3"])

注意:对于列表,我们尽量存放属性相同的元素

使用appendleft将数据从左侧导入

user_deque.appendleft("hongshaorou0")

使用copy会进行浅拷贝(当元素的不可变时候直接拷贝一个,当元素是可变的时候,会同时指向可变元素,改变任何一个可变对象,另一个也改变)

user_deque2 = user_deque.copy()

我们可以使用Python自带的copy进行深拷贝(深拷贝是完全拷贝,无论是否存在可变对象)

import copy

user_deque3 = copy.deepcopy(user_deque)

我们可以使用extend进行将两个双端队列进行合并,在队列本身的基础上

user_deque4 = deque(["hongshaorou11", "hongshaorou22", "hongshaorou33"])
user_deque.extend(user_deque4)  # 该操作并没有任何返回

我们可以使用insert在指定位置插入元素

user_deque.insert(0, "hongshaorou4")

我们可以使用reverse将队列翻转

user_deque.reverse()

注意:Python的魔法函数和类没有直接关系,是解释器可以直接调用的函数

应用: Queue 的内部实现是基于deque

from queue import Queue

双端队列deque和list的区别:

deque是线程安全的(通过GIL来保护),list不是线程安全的
deque是list的子类

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容