Python Deque 模块使用详解

Python Deque 模块使用详解

什么是Deque

Deque是 “double-ended queue”(双端队列)的缩写,在Python中是一个数据结构。它是一个可在两端添加和删除元素的序列,通俗点说它是一种可以在两端进行操作的序列。

Deque的主要方法

Deque包含以下方法:

方法 描述
append(x) 向右侧添加x元素
appendleft(x) 向左侧添加x元素
clear() 销毁deque,清除数据
count(x) 统计x出现次数
extend(iterable) 在右侧添加可迭代对象
extendleft(iterable) 在左侧添加可迭代对象
pop() 弹出右侧元素
popleft() 弹出左侧元素
remove(x) 删除deque中的x元素,如果没有引发ValueError错误
reverse() 反向deque中现有元素
rotate(n) 向右循环移动n步。如果n是负数,则向左旋转

Deque的示例

下面是两个操作deque的示例,一个是数组倒置,一个是滑动窗口。

数组倒置

from collections import deque

def reverse(arr):
    d = deque()
    for i in arr:
        d.appendleft(i)
    return list(d)

arr = [1, 2, 3, 4, 5]
print(reverse(arr)) # [5, 4, 3, 2, 1]

滑动窗口

from collections import deque

def window(arr, k):
    d = deque()
    res = []
    for i in range(len(arr)):
        if i >= k and d[0] <= i - k: # 检查左端是否超过滑动窗口长度
            d.popleft()
        while d and arr[d[-1]] <= arr[i]: # 检查右端丢弃元素,保证队列单调不升
            d.pop()
        d.append(i) # 将当前下标插入队列
        if i >= k - 1:
            res.append(arr[d[0]]) # 左端元素为窗口最大值
    return res

arr = [1,3,-1,-3,5,3,6,7]
print(window(arr, 3)) # [3, 3, 5, 5, 6, 7]

以上示例展示了如何使用deque进行数组倒置和滑动窗口计算,其语法简单易懂,易于编写。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python Deque 模块使用详解 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • python中单例常用的几种实现方法总结

    Python中单例常用的几种实现方法总结 在Python中,单例指的是在一个进程中,某个类仅有一个实例,并提供一个全局的访问点。 本文将总结几种Python中单例模式的实现方法,包括: 使用装饰器 使用类 使用元类 使用装饰器 通过装饰器来实现单例模式,可以避免在类中编写额外的代码。该装饰器可以应用于几乎所有的类。 def singleton(cls): i…

    python 2023年5月19日
    00
  • Python实现生成密码字典的方法示例

    下面是“Python实现生成密码字典的方法示例”的完整攻略。 1. 什么是密码字典 密码字典是一种暴力破解密码常用的工具。它是一组密码的列表,可以用于尝试匹配某个加密的密码。密码字典可以手工制作,也可以使用现成的工具生成。下面介绍一下使用Python生成密码字典的方法。 2. Python实现生成简单密码字典的方法 对于一些简单的密码,我们可以使用Pytho…

    python 2023年5月13日
    00
  • django框架模板语言使用方法详解

    Django框架模板语言使用方法详解 Django框架的模板语言(Template Language)是一种用于在HTML模板中嵌入动态内容的语言。本文将介绍Django模板语言的基本语法和常用标签,并提供两个示例。 模板语言的基本语法 Django模板语言使用双大括号({{}})来标识动态内容。在模板中,可以使用变量、标签和过滤器来生成动态内容。 以下是一…

    python 2023年5月15日
    00
  • Django笔记二十四之数据库函数之比较和转换函数

    本文首发于公众号:Hunter后端原文链接:Django笔记二十四之数据库函数之比较和转换函数 这一篇笔记开始介绍几种数据库函数,以下是几种函数及其作用 Cast 转换类型 Coalesce 优先取值 Greatest 返回较大值 Nullif 值相同返回 None 1、model 准备 这一篇笔记我们主要用到 Author 和 Entry model 作为…

    python 2023年4月19日
    00
  • python excel多行合并的方法

    下面我将详细讲解“pythonexcel多行合并的方法”的完整实例教程。 标题 问题 如何用Python的pandas库将Excel表格中的多行合并成一行? 解决方法 使用pandas库,可以轻松实现多行合并功能,具体操作步骤如下: 1.导入pandas模块 import pandas as pd 2.读取Excel文件 df = pd.read_excel…

    python 2023年5月13日
    00
  • Python计时相关操作详解【time,datetime】

    Python计时相关操作详解【time,datetime】 在Python中涉及到计时的操作很多,比如计算程序运行时间、获取当前日期和时间等,主要用到了两个模块:time和datetime。在本文中,我们会详细讲解这两个模块的常用方法,并给出相应的代码示例。 time模块 time.time() time.time()函数用于获取当前时间的时间戳,返回值为浮…

    python 2023年6月2日
    00
  • Python中apply函数的用法实例教程

    当使用Python编程时,我们会经常使用到一些内置函数,其中一个很常用的函数便是apply函数。本篇文章将从以下几个方面详细讲解apply函数的用法,帮助大家更好的理解和使用这个函数。 1. apply函数的基本用法 apply函数是Python中的一个内置函数,其作用是对于一个可迭代的对象(比如列表、元组等),将一个带有相应参数的函数应用到每个元素上,并返…

    python 2023年5月14日
    00
  • Python合并字符串的3种方法

    Python是一种强大的编程语言,同时也是一个非常好用的字符串处理工具。在Python中,我们可以使用多种方式合并字符串,以下是Python合并字符串的3种方法及详细攻略。 1. 使用字符串拼接符号 “+” 进行字符串合并 我们可以使用“+”运算符来合并两个或多个字符串。合并多个字符串时,可以先定义一个空字符串变量,使用 “+” 连接符将其与其他字符串拼接起…

    python 2023年6月5日
    00
合作推广
合作推广
分享本页
返回顶部