美文网首页
python之队列(deque模块)

python之队列(deque模块)

作者: ATNOW | 来源:发表于2019-12-30 14:09 被阅读0次

deque 位于 collections 包下,主要包含以下方法:

class deque(MutableSequence[_T], Generic[_T]):
    @property
    def maxlen(self) -> Optional[int]: ...
    def __init__(self, iterable: Iterable[_T] = ...,
                 maxlen: Optional[int] = ...) -> None: ...
    def append(self, x: _T) -> None: ...
    def appendleft(self, x: _T) -> None: ...
    def clear(self) -> None: ...
    if sys.version_info >= (3, 5):
        def copy(self) -> deque[_T]: ...
    def count(self, x: _T) -> int: ...
    def extend(self, iterable: Iterable[_T]) -> None: ...
    def extendleft(self, iterable: Iterable[_T]) -> None: ...
    def insert(self, i: int, x: _T) -> None: ...
    def index(self, x: _T, start: int = ..., stop: int = ...) -> int: ...
    def pop(self, i: int = ...) -> _T: ...
    def popleft(self) -> _T: ...
    def remove(self, value: _T) -> None: ...
    def reverse(self) -> None: ...
    def rotate(self, n: int) -> None: ...

简单介绍一下栈、队列和双端队列

栈:只允许在一端进行插入、删除操作,这一端被称为栈顶(top),另一端则被称为栈底(bottom),从栈顶插入一个元素被称为进栈(push),将一个元素插入栈顶被称为“压入栈”,从栈顶删除一个元素被称为出栈(pop)。

队列:它只允许在表的前端(front)进行删除操作,在表的后端(rear)进行插入操作。进行插入操作的端被称为队尾,进行删除操作的端被称为队头。

队列

双端队列:允许在两端同时进行插入、删除操作

双端队列
from collections import deque

# deque当成栈
stack = deque(('Kotlin', 'Python'))
# 元素入栈
stack.append('Erlang')
stack.append('Swift')
print('stack中的元素:', stack)  # deque(['Kotlin', 'Python', 'Erlang', 'Swift'])
# 元素出栈,后添加的元素先出栈
print(stack.pop())  # Swift
print(stack.pop())  # Erlang
print(stack)  # deque(['Kotlin', 'Python'])

# deque 当成队列,使用append入队列,popleft出队列
from collections import deque

q = deque(('Kotlin', 'Python'))
# 元素加入队列
q.append('Erlang')
q.append('Swift')
print('q中的元素:', q)  # q中的元素: deque(['Kotlin', 'Python', 'Erlang', 'Swift'])
# 元素出队列,先添加的元素先出队列
print(q.popleft())  # Kotlin
print(q.popleft())  # Python
print(q)  # deque(['Erlang', 'Swift'])

# deque 的rotate() 方法,该方法的作用是将队列的队尾元素移动到队头,使之首尾相连
q = deque(range(5))
print('q中的元素:', q)
# 执行旋转,使之首尾相连
q.rotate()
print('q中的元素:', q)
# 再次执行旋转,使之首尾相连
q.rotate()
print('q中的元素:', q)

相关文章

  • python之队列(deque模块)

    deque 位于 collections 包下,主要包含以下方法: 简单介绍一下栈、队列和双端队列 栈:只允许在一...

  • Python之双向队列

    Python collections模块中的deque类是一种双向队列(double-ended queue,双端...

  • 双向队列deque

    deque是python中的一种内置数据结构(双向队列),在collections模块中,所以在使用前需要先从co...

  • LeetCode刷题笔记(三)栈与队列

    三. 栈与队列 python中的栈直接用list实现,队列用deque,需要导入外部包。 155. 最小栈 题目:...

  • Python collections模块--deque

    deque 线程安全的双向队列 append(x) 在队列的右边添加 x appendleft(x) 在队列的左...

  • Python常用模块

    Python常用模块之time模块 Python常用模块之os模块 Python常用模块之sys模块 Python...

  • python爬虫-25-python多线程安全队列Queue详解

    1、python之Queue介绍 Python中的queue模块中提供了同步的、线程安全的队列类,包括FIFO(先...

  • Python ☞ day 6

    Python学习笔记之 os模块 & 递归函数 & 栈 & 队列 os模块:包含了普遍的操作系统的功能 有些方法存...

  • python 双端队列 deque

    适用操作1·类似与unix下的tail函数。2·从右边加入,从左边弹出的操作 下面简单的介绍一下[Python]中...

  • python双端队列deque

    deque支持从任意一端增加和删除元素。 由于deque是一种序列容器,因此同样支持list的一些操作,如用get...

网友评论

      本文标题:python之队列(deque模块)

      本文链接:https://www.haomeiwen.com/subject/zcqmoctx.html