一、最近最少使用实现:

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. Ambari HDP集群搭建文档

    一.配置主机和节点机器之间SSH无密登录 多台外网服务器配置时,需要在/etc/hosts中把本机的IP地址设置为内网IP地址 http://2d67df38.wiz02.com/share/s/0J ...

  2. lapis 路由

    1. 路由以及url 模式 参考如下: local lapis = require("lapis") local app = lapis.Application() app:mat ...

  3. Cassandra spring data 试用

    1. maven  依赖 <dependency> <groupId>org.springframework.data</groupId> <artifact ...

  4. SmartFoxServer资料

    http://blog.sina.com.cn/s/blog_6bc2090c0100pgkx.html http://www.cnblogs.com/winson-w/p/3555106.html ...

  5. 部署coredns

      1 前提:     1.1不依赖kubeadm的方式,适用于不是使用kubeadm创建的k8s集群,或者kubeadm初始化集群之后,删除了dns相关部署.      1.2 DNS IP :10 ...

  6. tomcat日志分类

    综合:Tomcat下相关的日志文件 Cataline引擎的日志文件,文件名catalina.日期.log Tomcat下内部代码丢出的日志,文件名localhost.日期.log(jsp页面内部错误的 ...

  7. ASP.NET Ajax 客户端框架未能加载、"Sys"未定义

    在Windows Server 2003 系统上部署asp.net项目出现以下问题: IIS为6.0 导致菜单控件的图片显示不出来: WebSite:程序中的图片显示正常. 但用到ASP.net 2. ...

  8. DRF 解析器组件

    Django无法处理application/json协议请求的数据,即,如果用户通过application/json协议发送请求数据到达Django服务器,我们通过request.POST获取到的是一 ...

  9. offset()和position()

    网上百度都有的说明是 offset():获取匹配元素在当前视口的相对偏移. position():获取匹配元素相对父元素的偏移. 如果单纯写这两句话,这个博客毫无意义 这里我写下他俩的使用情况,希望对 ...

  10. Java-Runoob-高级教程:Java 泛型

    ylbtech-Java-Runoob-高级教程:Java 泛型 1.返回顶部 1. Java 泛型 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检 ...