python数据结构-如何实现用户的历史记录功能
如何实现用户的历史记录功能
使用collections中的deque
from collections import deque
dq = deque([], 5)
dq.append(1)
dq.append(2)
dq.append(3)
dq.append(4)
dq.append(5)
print(dq) #deque([1, 2, 3, 4, 5], maxlen=5) dq.append(6)
print(dq) #deque([2, 3, 4, 5, 6], maxlen=5)
分析:如果程序退出,保存在内存中的历史记录将会被情况,应当保存在磁盘中
以方便下次访问程序时从新加载
使用pickle模块将历史记录存储到硬盘中
from collections import deque
import pickle
dq = deque([], 5)
dq.append(1)
dq.append(2)
dq.append(3)
dq.append(4)
dq.append(5)
print(dq) #deque([1, 2, 3, 4, 5], maxlen=5) dq.append(6)
print(dq) #deque([2, 3, 4, 5, 6], maxlen=5) pickle.dump(dq, open('his.pkl', 'wb')) #write
res = pickle.load(open('his.pkl', 'rb')) #read
res_list = list(res)
print(res_list) #[2, 3, 4, 5, 6]
参考资料:python3实用编程技巧进阶
python数据结构-如何实现用户的历史记录功能的更多相关文章
- 5、如何快速找到多个字典中的公共键(key) 6 如何让字典保持有序 7 如何实现用户的历史记录功能(最多n条)
5.如何快速找到多个字典中的公共键(key) from random import randint,sample #随机取数 # a = sample("ABCDEF",randi ...
- 问题7:如何实现用户的历史记录功能(最多n条)
实例:制作猜字游戏,添加历史记录功能,显示用户最近猜过的数字 解决方案:使用容量为n的队列存储历史记录 使用标准库colections中的deque,一个双端循环队列 程序退出前,可以使用pickle ...
- 如何实现用户的历史记录功能(最多n条)
使用容量为n的队列存储历史记录 使用标准库collections中的deque,它是一个双端循环队列 from collections import deque q = deque([], 5) #参 ...
- Python数据结构与算法相关问题与解决技巧
1.如何在列表, 字典, 集合中根据条件筛选数据¶ In [1]: from random import randint In [2]: data = [randint(-10,10) for _ ...
- Python和SQL Server 2017的强大功能
Python和SQL Server 2017的强大功能 摘要: 源:https://www.red-gate.com/simple-talk/sql/sql-development/power-pyt ...
- Python数据结构与算法--List和Dictionaries
Lists 当实现 list 的数据结构的时候Python 的设计者有很多的选择. 每一个选择都有可能影响着 list 操作执行的快慢. 当然他们也试图优化一些不常见的操作. 但是当权衡的时候,它们还 ...
- Python数据结构与算法--算法分析
在计算机科学中,算法分析(Analysis of algorithm)是分析执行一个给定算法需要消耗的计算资源数量(例如计算时间,存储器使用等)的过程.算法的效率或复杂度在理论上表示为一个函数.其定义 ...
- Python数据结构之四——set(集合)
Python版本:3.6.2 操作系统:Windows 作者:SmallWZQ 经过几天的回顾和学习,我终于把Python 3.x中的基础知识介绍好啦.下面将要继续什么呢?让我想想先~~~嗯,还是 ...
- Linux上实现Windows的SQLPlus保存SQL历史记录功能
在Windows操作系统上,当在DOS命令窗口中运行SQL*Plus的时候,可以使用向上,向下键来跳回之前已经执行过的SQL语句.你可以根据需要修改他们,然后按Enter键重新提交执行. 然而,当在L ...
随机推荐
- scrapy框架Selector提取数据
从页面中提取数据的核心技术是HTTP文本解析,在python中常用的模块处理: BeautifulSoup 非常流行的解析库,API简单,但解析的速度慢. lxml 是一套使用c语言编写的xml解析 ...
- 大数据:Parquet文件存储格式
一.Parquet的组成 Parquet仅仅是一种存储格式,它是语言.平台无关的,并且不需要和任何一种数据处理框架绑定,目前能够和Parquet适配的组件包括下面这些,可以看出基本上通常使用的查询引擎 ...
- WebViewJavascriptBridge的使用说明
WebViewJavascriptBridge 项目介绍 在Obj-C 和 WKWebView, UIWebView 中的 Javascript之间传送信息的桥梁. 项目地址 如何使用 Javascr ...
- c# httpclient
using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System ...
- 在VS中为C/C++源代码文件生成对应的汇编代码文件(.asm)
以VS2017为例 然后重新生成工程,在工程目录中就会有对应的汇编代码文件.
- [原] MyBatis 整理
花了一上午的时间,先整理一个脑图.
- C++ Msi函数判断应用是否已经安装
#include <Windows.h> #include <Msi.h> #pragma comment(lib, "Msi.lib") bool Che ...
- oracle sqlplus命令详解
涉及到的知识要点 a.带有一个&的替换变量的用法b.带有两个&的替换变量用法c.define命令用法d.accept命令用法e.定制SQL*Plus环境f.在glogin.sql文件中 ...
- Dev_GridView:设置列为Button
1. gridview ——run designer ——columns ——columns Edit选择repositoryItemButtonEdit1列 2. 更改colums ——showBu ...
- C++打开剪切板,获取剪切板数据
if (::OpenClipboard(NULL) && ::IsClipboardFormatAvailable(CF_HDROP)) { HDROP hDrop = (HDROP) ...