如何用python实现滑动窗口

在Python中,我们可以使用内置的collections模块中的deque数据结构来实现滑动窗口,以下是一个简单的例子:

如何用python实现滑动窗口
(图片来源网络,侵删)
from collections import deque
def sliding_window(iterable, n):
    # 创建一个双端队列
    dq = deque(maxlen=n)
    for item in iterable:
        dq.append(item)
        if len(dq) == n:
            yield list(dq)
测试代码
for window in sliding_window([1, 2, 3, 4, 5], 3):
    print(window)

在这个例子中,我们首先从collections模块导入deque类,我们定义了一个名为sliding_window的函数,它接受一个可迭代对象和一个窗口大小作为参数。

在函数内部,我们创建了一个最大长度为n的双端队列dq,我们遍历输入的可迭代对象,将每个元素添加到队列的末尾,当队列的长度达到n时,我们就生成一个新的列表,其中包含队列中的所有元素。

我们使用一个简单的循环来测试我们的函数,我们将一个包含五个元素的列表和窗口大小3传递给sliding_window函数,然后打印出所有的滑动窗口。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/452908.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希
上一篇 2024-04-08 09:43
下一篇 2024-04-08 09:45

相关推荐

  • c创建数据库SQLserver

    在SQL Server中,创建数据库可使用CREATE DATABASE语句,如CREATE DATABASE mydatabase; 。

    2025-02-17
    018
  • C创建zip

    在C语言中创建ZIP文件通常需要借助第三方库,如zlib或minizip。以下是一个使用minizip库创建ZIP文件的示例代码:“c,#include,#include “zip.h”int main() {, zipFile zf = zipOpen(“example.zip”, APPEND_STATUS_CREATE);, if (zf == NULL) {, printf(“Failed to create ZIP file.,”);, return 1;, } zip_fileinfo zfi;, memset(&zfi, 0, sizeof(zfi)); const char *filename = “example.txt”;, char content[] = “Hello, World!”; if (zipOpenNewFileInZip(zf, filename, &zfi, NULL, 0, NULL, 0, NULL, Z_DEFLATED, Z_DEFAULT_COMPRESSION) != ZIP_OK) {, printf(“Failed to add file to ZIP.,”);, zipClose(zf, NULL);, return 1;, } zipWriteInFileInZip(zf, content, strlen(content));, zipCloseFileInZip(zf);, zipClose(zf, NULL); printf(“ZIP file created successfully.,”);, return 0;,},`这段代码首先打开一个名为example.zip的ZIP文件(如果不存在则创建),然后添加一个名为example.txt`的文件,内容为”Hello, World!”。最后关闭ZIP文件并输出成功信息。

    2025-02-17
    012
  • c客户端java服务器端

    c客户端java服务器端通常指使用C语言编写的客户端程序与Java编写的服务器端程序进行通信,通过网络协议(如TCP/IP)实现数据传输和交互。

    2025-02-17
    012
  • c创建数据库

    创建数据库,使用 CREATE DATABASE 语句创建数据库。

    2025-02-17
    019

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入