一、最近最少使用实现:

import collections
class LRUDict(object):
'''
最近最少使用队列实现,最近使用的键值放后面
'''
def __init__(self,dict_list,size):
self.ordered_dict = collections.OrderedDict(dict_list)
self.size = size def get(self,key):
if key in self.ordered_dict:
value = self.ordered_dict.get(key)
self.ordered_dict.move_to_end(key)
else:
value = None
return value def set(self,key,value):
if len(self.ordered_dict) >= 10:
self.ordered_dict.popitem(last=False)
self.ordered_dict.update([(key,value)])
self.ordered_dict.move_to_end(key) instance = LRUDict(dict_list=[(1,1),(2,2),(3,3)],size=4)
print(instance.get(1),instance.ordered_dict)
instance.set(4,4)
print(instance.ordered_dict)
instance.set(3,9)
print(instance.ordered_dict)

OR:

class LRUDict(collections.OrderedDict):
def __init__(self, size, *args, **kwargs):
self.size = size
super(LRUDict, self).__init__(*args, **kwargs) def __getitem__(self, key):
if key in self:
self.move_to_end(key)
return super(LRUDict, self).__getitem__(key) def __setitem__(self, key, value):
if len(self) >= 10:
self.popitem(last=False)
super(LRUDict, self).__setitem__(key, value)
self.move_to_end(key) instance = LRUDict(4, [(1, 1), (2, 2), (3, 3)])
print(instance[1], instance)
instance.update([(4, 4)])
print(instance)
instance.update([(3, 9)])
print(instance)

  

Python OrderedDict使用的更多相关文章

  1. python OrderedDict

    15年16年接触python时候,还不知道这个函数,只知道dict的无序,造成了一些麻烦 今天view 代码,发现了 OrderedDict() 在python2.7中比较吃内存 pop(获取指定ke ...

  2. HowToDoInJava 其它教程 2 · 翻译完毕

    原文:HowToDoInJava 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. ApacheCN 学习资源 目录 JMS 教程 JMS 教 ...

  3. Python: sort,sorted,OrderedDict的用法

    Python: sort,sorted,OrderedDict的用法 from http://stqdd.com/archives/427 by 莫亚菜 python对容器内数据的排序有两种,一种是容 ...

  4. python模块介绍- collections(5)-OrderedDict 有序字典

    1.3.5 OrderedDict 有序字典 OrderedDict是dict的子类,它记住了内容添加的顺序. import collections print 'Regular dictionary ...

  5. Python - DICT 字典排序 - OrderedDict

    官方地址: https://docs.python.org/2/library/collections.html#collections.OrderedDict >>> # regu ...

  6. Python 有序字典(OrderedDict)与 普通字典(dict)

    Python 的基础数据类型中的字典类型分为:无序字典 与 有序字典 两种类型 1.无序字典(普通字典): my_dict = dict()my_dict["name"] = &q ...

  7. python 全栈开发,Day26(hashlib文件一致性,configparser,logging,collections模块,deque,OrderedDict)

    一.hashlib文件一致性校验 为何要进行文件一致性校验? 为了确保你得到的文件是正确的版本,而没有被注入病毒和木马程序.例如我们经常在网上下载软件,而这些软件已经被注入了一些广告和病毒等,如果不进 ...

  8. python有序字典OrderedDict()

    转python创建有序字典OrderedDict # -*- coding:utf-8 -*- """ python有序字典 需导入模块collections " ...

  9. python中OrderedDict的使用

    很多人认为python中的字典是无序的,因为它是按照hash来存储的,但是python中有个模块collections(英文,收集.集合),里面自带了一个子类 OrderedDict,实现了对字典对象 ...

随机推荐

  1. Python Tkinter 学习历程 一

    一丶一个简单的程序 from tkinter import * #引入所有类#查看tk版本#tkinter._test() root = Tk(); #对这个类进行实例化 w1 = Label(roo ...

  2. 《DSP using MATLAB》示例Example7.25

    今天清明放假的第二天,早晨出去吃饭时天气有些阴,十点多开始“清明时节雨纷纷”了. 母亲远在他乡看孙子,挺劳累的.父亲照顾生病的爷爷…… 我打算今天把<DSP using MATLAB>第7 ...

  3. matlab中卷积编码参数的理解

    poly2trellis(7, [171 133])代表什么意思呢?首先是7,他是1*k的vector,此处k为1,[171 133]是k*n的vector,此处n就是2,那么这个编码就是1/2码率的 ...

  4. 同一台电脑上装两个或两个以上的tomcat服务器

    1.下载免安装版tomcat,解压成tomcat1.tomcat2: 2.修改tomcat2中conf下server.xml文件如下: <Server port="8005" ...

  5. SPI: Service Provider Interface

    Service Provider Interface: JDK提供的一种服务发现的机制:主要是用于厂商实现JDK的只用. 比如说打印机,JDK提供了一个驱动接口com.printl.printerDr ...

  6. Linux 内核源码目录结构

    arch:包含和硬件体系结构相关的代码,每种平台占用一个相应的目录. block:块设备驱动程序 I/O 调度. crypto:常用加密和散列算法(如AES.SHA等),还有一些压缩和CRC校验算法. ...

  7. licode从客户端到连上信令服务器流程

    var config = {audio: true, video: true, data: true, screen: screen, videoSize: [640, 480, 640, 480], ...

  8. TCP/IP网络编程系列之二(初级)

    套接字类型与协议设置 我们先了解一下创建套接字的那个函数 int socket(int domain,int type,int protocol);成功时返回文件描述符,失败时返回-1.其中,doma ...

  9. java代码----------计算器代码

    总结: 很多不完善—— package com.rue; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.a ...

  10. java内存占用问题(一)

    Nocturne 2012-12-24 java数组内存占用问题. 30 Contact[] ca = new Contact[10];   while(x<10){     ca[x]=new ...