1.3 保留最后N个元素

技术1.3 保留最后N个元素 1.3 保留最后N个元素在迭代操作时,怎样只保留最后有限几个元素的历史记录问题描述
在迭代操作时,怎样只保留最后有限几个元素的历史记录
解决方案
数据结构:collecti

1.3保留最后n个元素

迭代运算中如何只保留最后几个元素的历史?

问题描述

迭代运算中如何只保留最后几个元素的历史?

解决方案

结构:collections.deque

例如,以下代码匹配文本的每一行,并返回匹配行之前的最后n行:

从集合导入

def搜索(线条、图案、历史=5):

'''

发电机功能

'''

previous _ lines=deque(maxlen=history)

对于线路:中的线路

第:行的if模式

产量线,前一行

previous_lines.append(行)

if __name__=='__main__':

与f:一起打开(r'test.txt ')

对于行,搜索中的前一行(f,' python ',5):

对于prevlines:中的pline

打印(普林,end=' ')

打印('-' * 20)

总结

Deque是一个双向队列。deque(maxlen=N)将创建一个固定大小的新队列。当添加新元素并且队列已满时,最旧的元素将被移除。

deque类可以用于任何只需要简单队列数据结构的情况。如果不设置最大队列大小,可以得到一个可以存储无限数据的队列。deque可以在队列的两端添加和弹出元素:

q=deque()

q.append(1)

q.append(2)

# deque([1,2])

q.appendleft(4)

# deque([4,1,2])

p=q.pop()

# p=2,q=deque([4,1])

p=q.popleft()

# p=4,q=deque([1])

在队列两端中插入或删除元素的时间复杂度是O(1),而在列表开头中插入或删除元素的时间复杂度是O(N)(因为以下元素必须向后或向前移动)。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/139155.html

(0)

相关推荐

  • 怎样分析MySQL体系架构

    技术怎样分析MySQL体系架构这篇文章将为大家详细讲解有关怎样分析MySQL体系架构,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。要了解mysql的运行机制,那么首先要对

    2021年10月25日
  • 9个适用于Web开发人员的CSS工具分别是什么

    技术9个适用于Web开发人员的CSS工具分别是什么这篇文章将为大家详细讲解有关9个适用于Web开发人员的CSS工具分别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

    攻略 2021年11月11日
  • 在IDEA中如何部署一个简单的考勤补签功能

    技术在IDEA中如何部署一个简单的考勤补签功能这篇文章主要介绍了在IDEA中如何部署一个简单的考勤补签功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 

    攻略 2021年11月24日
  • Vue3之Vue配套工具之Vuecli与Router

    技术Vue3之Vue配套工具之Vuecli与Router本篇内容介绍了“Vue3之Vue配套工具之Vuecli与Router”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如

    攻略 2021年10月22日
  • BBFT和FBFT/hot tuff有什么区别?

    技术BBFT与FBFT/HotStuff的区别有哪些本篇内容介绍了“BBFT与FBFT/HotStuff的区别有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这

    攻略 2021年12月20日
  • SpringBoot HATEOAS的原理是什么

    技术SpringBoot HATEOAS的原理是什么本篇文章给大家分享的是有关SpringBoot HATEOAS的原理是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小

    攻略 2021年11月23日