当前位置: 首页 > article >正文

Python Cookbook学习笔记-队列的处理

Python Cookbook学习笔记

1.1 队列的处理

1.1.1 使用队列保留最后的指定条记录

  重点是deque的使用,在新建deque时,通过maxlen参数指定队列长度,该队列在满之后,再追加数据,会把队首的数据挤出去,始终保持长度不变,该功能用于保存指定条数的历史记录非常实用。

如下代码示例:源自Python Cookbook

from collections import deque
def search(lines, pattern, history=3):
    previous_lines = deque(maxlen=history) 
    for line in lines:
        if pattern in line:
            yield line, previous_lines
        previous_lines.append(line)
# Example use on a file
if __name__ == '__main__':
    with open('somefile.txt') as f:
        for line, prevlines in search(f, 'python', 3):
            for pline in prevlines:
                print(pline, end='')
            print(line, end='')
            print('-'*20)
  • 知识点汇总
    • 函数中使用yield可以返回多个参数
    • 字符串匹配可以使用in操作符
    • 文件读取直接使用open(xxx.txt) as file, 再使用for..in即可读取文件
    • 克隆字符串使用*操作符

输出结果: (注意:somefile.txt文件每行最好包含python字样)

python test line 001.
--------------------
python test line 001.
python test line 002.
--------------------
python test line 001.
python test line 002.
python test line 003.
--------------------
python test line 001.
python test line 002.
python test line 003.
python test line 004.
--------------------
python test line 002.
python test line 003.
python test line 004.
python test line 005.
--------------------
  • deque使用小技巧
    • 队尾追加元素:append(3)
    • 队首插入元素:appendleft(4)
    • 队尾出栈:pop()
    • 队首出栈:popleft()

作者声明:本文用于记录和分享作者的学习心得,水平有限,难免存在表达错误,欢迎交流和指教!
Copyright © 2022~2024 All rights reserved.


http://www.kler.cn/a/455043.html

相关文章:

  • php的zip扩展 先装libzip
  • PS等软件学习笔记
  • windows使用zip包安装MySQL
  • JS 异步 ( 一、异步概念、Web worker 基本使用 )
  • Jensen-Shannon Divergence:定义、性质与应用
  • 华为管理变革之道:奋斗文化与活力
  • Linux 基本指令
  • 深度学习-论文即插即用模块1
  • 第三节、电机定速转动【51单片机-L298N-步进电机教程】
  • VMwareTools安装(ubuntu23)
  • 【Django自学】Django入门:如何使用django开发一个web项目(非常详细)
  • python-常用文件和目录操作
  • Web3如何推动元宇宙的去中心化发展?
  • 2024基于大模型的智能运维(附实践资料合集)
  • uniappX 移动端单行/多行文字隐藏显示省略号
  • 信息安全管理:通信与操作安全控制要点与管理策略
  • HarmonyOS NEXT 实战之元服务:静态案例效果---本地特色景色
  • leetcode 354. 俄罗斯套娃信封问题
  • Debian12 安装配置 ODBC for GaussDB
  • 光谱相机与普通相机的区别
  • 生态学研究新工具:CASA模型原理解析与MODIS NDVI/FPAR遥感数据处理
  • 一文详解串行、并行、同步、异步
  • 【C++】数据结构 单链表的实现(企业存储用户数据的实现)
  • JS中for循环里的ajax请求不数据
  • Win10自定义系统模式和应用模式
  • Docker部署捕鱼达人网页小游戏