Python OrderedDict使用
一、最近最少使用实现:
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使用的更多相关文章
- python OrderedDict
15年16年接触python时候,还不知道这个函数,只知道dict的无序,造成了一些麻烦 今天view 代码,发现了 OrderedDict() 在python2.7中比较吃内存 pop(获取指定ke ...
- HowToDoInJava 其它教程 2 · 翻译完毕
原文:HowToDoInJava 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. ApacheCN 学习资源 目录 JMS 教程 JMS 教 ...
- Python: sort,sorted,OrderedDict的用法
Python: sort,sorted,OrderedDict的用法 from http://stqdd.com/archives/427 by 莫亚菜 python对容器内数据的排序有两种,一种是容 ...
- python模块介绍- collections(5)-OrderedDict 有序字典
1.3.5 OrderedDict 有序字典 OrderedDict是dict的子类,它记住了内容添加的顺序. import collections print 'Regular dictionary ...
- Python - DICT 字典排序 - OrderedDict
官方地址: https://docs.python.org/2/library/collections.html#collections.OrderedDict >>> # regu ...
- Python 有序字典(OrderedDict)与 普通字典(dict)
Python 的基础数据类型中的字典类型分为:无序字典 与 有序字典 两种类型 1.无序字典(普通字典): my_dict = dict()my_dict["name"] = &q ...
- python 全栈开发,Day26(hashlib文件一致性,configparser,logging,collections模块,deque,OrderedDict)
一.hashlib文件一致性校验 为何要进行文件一致性校验? 为了确保你得到的文件是正确的版本,而没有被注入病毒和木马程序.例如我们经常在网上下载软件,而这些软件已经被注入了一些广告和病毒等,如果不进 ...
- python有序字典OrderedDict()
转python创建有序字典OrderedDict # -*- coding:utf-8 -*- """ python有序字典 需导入模块collections " ...
- python中OrderedDict的使用
很多人认为python中的字典是无序的,因为它是按照hash来存储的,但是python中有个模块collections(英文,收集.集合),里面自带了一个子类 OrderedDict,实现了对字典对象 ...
随机推荐
- C#飞行棋游戏
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 使用distillery 构建专业的 phoenix 项目软件包
备注: 首先需要安装 elixir 环境 1. 基本项目说明 参考项目: https://github.com/rongfengliang/phoenix-rest-demo 2. 项目说 ...
- Portainer docker 可视化管理工具
1. 快速使用 docker run -d -p 9000:9000 portainer/portainer 2. docker swarm 模式 docker service create \ ...
- 【转】理解 pkg-config 工具
原文网址:http://www.chenjunlu.com/2011/03/understanding-pkg-config-tool/ 你在 Unix 或 Linux 下开发过软件吗?写完一个程序, ...
- Wordpress网站添加七牛云cdn
1.一个搭建好的网站和七牛云账号 2.七牛云进入控制面板 3创建存储空间 4创建好了空间拿七牛给你了测试域名(但只可以使用30天)所以绑定自定义域名(这个必须是备案过的) 5.设置自定义域名(加速域名 ...
- centos 限制只能访问某个目录的php文件
vi /etc/php.ini #编辑 open_basedir = .:/tmp/ #在380行 设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,可以防止php木马跨站,如果 ...
- hadoop深入学习之SequenceFile
的1个byte 3.Key和Value的类名 4.压缩相关的信息 5.其他用户定义的元数据 6.同步标记,sync marker Metadata 在文件创建时就写好了,所以也是不能更改的.条记录存储 ...
- elasticsearch 6.x 处理一对多关系使用场景
思考:一个用户有多篇博客,如何查询博客作者姓名中带“旺”字.博客标题中带“运”的10篇博客列表 elasticsearch关联模型: 一: 应用层做联接2个索引博客作者.博客发布先从博客作者中查询出符 ...
- OSGi学习-总结
本文是osgi实战一书的前几章读书总结 1. OSGi简介 Java缺少对高级模块化的支持,为了弥补Java在模块化方面的不足,大多数管理得当的项目都会要求建立一整套技术,包括: 适应逻辑结构的编程 ...
- python学习(二十五) 链表方法
# 链表 cars = ['a', "b"] print(cars) # 链表长度 print(len(cars)) # 结尾添加元素 cars.append("c&qu ...