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)

相关推荐

  • XamarinAndroid组件中RecylerView适配器如何使用动画

    技术XamarinAndroid组件中RecylerView适配器如何使用动画这篇文章主要介绍XamarinAndroid组件中RecylerView适配器如何使用动画,文中介绍的非常详细,具有一定的参考价值,感兴趣的小

    攻略 2021年12月3日
  • Web中二次注入攻击原理的示例分析

    技术Web中二次注入攻击原理的示例分析这篇文章主要介绍Web中二次注入攻击原理的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!二次注入攻击二次注入攻击的测试地址:http://127.0.

    攻略 2021年11月7日
  • 兰色妖姬,蓝色妖姬是什么花

    技术兰色妖姬,蓝色妖姬是什么花蓝色妖姬是一种加工花卉,颜色为蓝色兰色妖姬。 由月季和蔷薇多种杂交及研制所得。它通常是用一种染色剂和助染剂调合成着色剂,将鲜花喷染成型,最早来自荷兰。据花卉专家介绍,世界上极少有自然生长的蓝

    生活 2021年11月1日
  • SQL Server存储过程中编写事务处理的方法有哪些

    技术SQL Server存储过程中编写事务处理的方法有哪些本篇文章为大家展示了SQL Server存储过程中编写事务处理的方法有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

    攻略 2021年11月30日
  • 苹果MP3文件编码器功能有哪些

    技术MP3 Encoder for Mac功能有哪些小编给大家分享一下MP3 Encoder for Mac功能有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!音频文件如何转换为MP3格式?MP3

    攻略 2021年12月24日
  • phpmysql数据库可以更新吗(php如何获取mysql更新)

    技术php如何实现mysql更新这篇文章给大家分享的是有关php如何实现mysql更新的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 php实现mysql更新的方法

    攻略 2021年12月15日