保存最后N个元素(collections.deque)

1、deque(maxlen=N)创建一个固定长度的队列,当有新的记录加入而队列已经满时,会自动移除老的记录(队列更加优雅和快速)

 1 from collections import deque
 2 q = deque(maxlen=3)
 3 q.append(1)
 4 q.append(2)
 5 q.append(3)
 6 q
 7 deque([1, 2, 3], maxlen=3)
 8 q.append(4)
 9 q
10 deque([2, 3, 4], maxlen=3)

2、找到最大或者最小的N个元素:heapq模块中的两个函数nlargest()nsmallest()

import heapq
nums = [1,5,6,458,6,787,5,45,6]
print(heapq.nlargest(3,nums))
[787, 458, 45]
print(heapq.nsmallest(3,nums))
[1, 5, 5]

原文地址:https://www.cnblogs.com/iqunqunqun/p/9311274.html

时间: 2024-10-18 20:40:01

保存最后N个元素(collections.deque)的相关文章

保存最后N个元素

cookbook系列 问题:对要搜索的值的最后几项做个有限的历史记录. 方案: 1 #coding=utf-8 2 from collections import deque 3 4 def search(lines, pattern, history=5): 5 previous_lines = deque(maxlen=history) #deque双端队列 6 for line in lines: 7 if pattern in line: 8 yield line, previous_l

python之保留有限的历史记录(collections.deque)

1.deque(maxlen=N)创建一个固定长度的队列,当有新的记录加入而队列已经满时,会自动移除老的记录. from collections import deque q = deque(maxlen=3) q.append(1) q.append(2) q.append(3) q deque([1, 2, 3], maxlen=3) q.append(4) q deque([2, 3, 4], maxlen=3) 应用功能: 保存有限的历史记录collections.deque的完美应用场

collections.deque

d = collections.deque([])  # 创建双端队列d.append('a') # 在最右边添加一个元素,此时 d=deque('a')d.appendleft('b') # 在最左边添加一个元素,此时 d=deque(['b', 'a'])d.extend(['c','d']) # 在最右边添加所有元素,此时 d=deque(['b', 'a', 'c', 'd']) 原文地址:https://www.cnblogs.com/pjishu/p/10545734.html

【python cookbook】【数据结构与算法】3.保存最后N个元素

问题:希望在迭代或是其他形式的处理过程中对最后几项记录做一个有限的历史记录统计 解决方案:选择collections.deque. 如下的代码对一系列文本行做简单的文本匹配操作,当发现有匹配时就输出当前的匹配行以及最后检查过的N行文本: from collections import deque def search(lines, pattern, history=5): previous_lines = deque(maxlen=history) for line in lines: if p

python collections deque

collections是python的高级容器类库,包含了dict.truple之外的常用容器. 下面介绍常用的deque 1. deque是双端队列,可以从两端塞元素进去,也可以从两端取元素. 2. deque是线程安全的,可以用来做多线程的共享资源,我也是因为这个开始接触duque的 >>> from collections import deque >>> a = [1, 2, 3, 4] 用列表初始化deque >>> deq = deque(

[PY3]——找出一个序列中出现次数最多的元素/collections.Counter 类的用法

问题 怎样找出一个序列中出现次数最多的元素呢? 解决方案 collections.Counter 类就是专门为这类问题而设计的, 它甚至有一个有用的 most_common() 方法直接给了你答案 collections.Counter 类 1. most_common(n)统计top_n from collections import Counter words = [ 'look', 'into', 'my', 'eyes', 'look', 'into', 'my', 'eyes', 't

appium 学习各种小功能总结--功能有《滑动图片、保存截图、验证元素是否存在、》---新手总结(大牛勿喷,新手互相交流)

1.首页滑动图片点击 1 /** 2 * This Method for swipe Left 3 * 大距离滑动 width/6 除数越大向左滑动距离也越大. 4 * width:720 5 *height:1280 6 * @author Young 7 * @param driver2 8 * @param during 9 */ 10 public void swipeToLeft2(AndroidDriver driver2, int during) { 11 int width =

给定字符串数组,用map的key保存数组中字符串元素,value保存字符串元素出现次数,最后统计个字符串元素出现次数

import java.util.HashMap; public class map1 { public static void main(String[] args) { String[] array = {"a","b","a","b","c","a","b","c","b"}; HashMap hm = new HashM

元素分类与 collections

1.元素分类: #[11,22,33,44,55,66,77,88,99,90] #将所有大于66的值保存至字典的一个key中 #将小于66的保存至第二个key中 #{'k1':[77,88,99,90],'k2':[11,22,33,44,55,66]} li = [11,22,33,44,55,66,77,88,99,90] dic = {'k1':[],'k2':[]} for i in li:     if i > 66:         dic['k2'].append(i)