Python字典去重竟然比集合去重快速40多倍

这里写目录标题

  • 对比代码
  • 结果图
  • 代码解析

对比代码

from  glob import glob
from tqdm import tqdm
import time
path_list=glob("E:/sky_150b/任务组_20231207_2023/*.jsonl")
# for two in tqdm(path_list):
one=path_list[0]with open(one,"r",encoding="utf-8") as f:data=f.readlines()
start=time.time()
data_list={}
for i in tqdm(data):if data_list.get(i,False)==False:data_list[i]="1"
print(time.time()-start)
start=time.time()
data_list = set()for i in tqdm(data):data_list|=set(i)
print(time.time() - start)# with open(one, "w", encoding="utf-8") as f:#     f.writelines([i for i in data_list.keys()])#

结果图

在这里插入图片描述

代码解析

这段代码的作用是比较两种方法分别用于处理一个文件中的数据重复项的时间效率。

具体流程如下:

  1. 导入需要用到的模块:

    from  glob import glob
    from tqdm import tqdm
    import time
    

    glob 模块用于查找匹配特定模式的文件路径名,它返回所有符合条件的文件路径列表。tqdm 模块是一个用于在 Python 迭代器中添加进度条的库。

  2. 使用 glob 模块获取所有符合条件的文件路径名:

  path_list=glob("E:/sky_150b/任务组_20231207_2023/*.jsonl")

这里使用了 glob() 函数获取了所有以 .jsonl 结尾文件的路径名,存储在 path_list 列表中。

  1. 对于每个文件路径名循环处理重复项:

    one=path_list[0]with open(one,"r",encoding="utf-8") as f:data=f.readlines()
    start=time.time()
    data_list={}
    for i in tqdm(data):if data_list.get(i,False)==False:data_list[i]="1"
    print(time.time()-start)
    start=time.time()
    data_list = set()for i in tqdm(data):data_list|=set(i)
    print(time.time() - start) 
    

    分别使用两种不同的方法处理文件中的重复项并计算时间。其中第一个循环使用了字典的键值对特性,通过判断键是否存在来去重,第二个循环则使用了 Python 内置的 set 数据结构实现去重。

    time.time() 函数用于获取当前时间戳,两次获取的时间戳相减即为整个循环处理时间。

    tqdm 模块的作用是在循环时显示进度条,使得处理结果更加直观。

最终输出两种处理方法的时间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/212474.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】POCO学习总结(十):Poco::Util::Application(应用程序框架)

【C】郭老二博文之:C目录 1、Poco::Util::Application 应用框架 1.1 应用程序基本功能 Poco::Util::Application是POCO实现的的应用程序框架,支持功能如下: 命令行参数处理配置文件初始化和关机日志 1.2 命令行程序和守护进程 POCO支持…

Java架构师系统架构实现高内聚低耦合

目录 1 导语2 边界内聚耦合概述3 聚焦内聚4 关注耦合5 如何实现高内聚低耦合6 内聚耦合规划不当的效果7 总结想学习架构师构建流程请跳转:Java架构师系统架构设计 1 导语 架构设计的核心维度,从系统的扩展性、高性能、高可用、高安全性和伸缩性五个维度进行了探讨,并介绍了…

【Docker】进阶之路:(一)容器技术发展史

【Docker】进阶之路:(一)容器技术发展史 什么是容器为什么需要容器容器技术的发展历程Docker容器是如何工作的 什么是容器 容器作为一种先进的虚拟化技术,已然成为了云原生时代软件开发和运维的标准基础设施。在了解容器技术之前…

抖音本地生活服务商申请入口在哪里?具体流程是怎样的?

不论是抖音的本地生活业务,还是后来的支付宝、视频号的本地生活业务,因为市场体量足够庞大,市场前景广阔,一直很受各大创业者的追捧。那么,如此火热的本地生活项目,想要申请成为服务商,具体的申…

列表标签的介绍与使用

列表的作用&#xff1a; 整齐、整洁、有序&#xff0c;它作为布局会更加自由和方便。 根据使用情景不同&#xff0c;列表可以分为三大类&#xff1a;无序列表、有序列表和自定义列表 无序列表 <ul> 标签表示 HTML 页面中项目的无序列表&#xff0c;一般会以项目符号呈…

深入了解linux下网卡防火墙selinux

深入了解linux下网卡防火墙selinux 在Linux系统中&#xff0c;网络安全是非常重要的。为了保护系统免受恶意攻击和未经授权的访问&#xff0c;我们可以使用防火墙来限制网络流量。而在Linux下&#xff0c;我们可以使用SELinux&#xff08;Security-Enhanced Linux&#xff09;…

Java调试技巧之垃圾回收机制解析

Java作为一种高级编程语言&#xff0c;以其跨平台、面向对象、自动内存管理等特性而广受开发者的喜爱。其中&#xff0c;自动内存管理是Java的一大亮点&#xff0c;通过垃圾回收机制实现对内存的自动分配和释放&#xff0c;极大地简化了开发者的工作。本文将深入探讨Java的垃圾…

mysql数据库文件丢失恢复---惜分飞

客户服务器重启,mysql相关数据文件丢失 通过底层工具进行分析,无法正确恢复数据库名字,一个个单个ibd文件(而且很多本身是错误的) 对于这种情况,通过mysql block扫描恢复出来page文件 恢复出来客户需要数据 这个客户出现该故障的原因大概率是由于文件系统损坏导致.最终…

C语言进阶之路-数据结构篇

目录 一、学习目标 二、数据结构 1.基本概念 线性关系&#xff1a; 非线性关系&#xff1a; 存储形式 2. 算法分析 2.1 时间复杂度 2.2 空间复杂度 2.3 时空复杂度互换 总结 一、学习目标 了解数据结构的基本概念了解算法的分析方法 二、数据结构 1.基本概念 数据结…

测试bug分析

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 例如&#xff1a;项目场景&#xff1a;示例:通过蓝牙芯片(HC-05)与手机 APP 通信&#xff0c;每隔 5s 传输一批传感器数据(不是很大) 问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1…

Nacos源码解读11——客户端怎么读取最新的配置信息

项目启动怎么读取的配置信息 自动装配 SpringBoot 自动装配机制 加载 WEB/INF spring.factories 会将如下几个Bean加载到ioc 容器中 BeanConditionalOnMissingBeanpublic NacosConfigProperties nacosConfigProperties() {return new NacosConfigProperties();}BeanCondition…

【算法Hot100系列】两数之和

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【rabbitMQ】模拟work queue,实现单个队列绑定多个消费者

上一篇&#xff1a; springboot整合rabbitMQ模拟简单收发消息 https://blog.csdn.net/m0_67930426/article/details/134904766?spm1001.2014.3001.5502 在这篇文章的基础上进行操作 基本思路&#xff1a; 1.在rabbitMQ控制台创建一个新的队列 2.在publisher服务中定义一个…

MySQL中的数据类型

MySQL中的数据类型 大家好&#xff0c;我是微赚淘客系统的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将探讨MySQL中的数据类型&#xff0c;这是数据库设计中至关重要的一部分。数据库作为程序的底层支持&#xff0c;数据类型的选择…

[python]利用whl轮子文件python3.12安装talib

ta-lib目前很多人使用&#xff0c;网上也有很多人下载whl文件直接pip安装即可&#xff0c;但是最新版本3.12没有出来&#xff0c;因此本人独家制作python 3.12版本whl文件&#xff0c;从源码开始编译生成。TA-Lib-0.4.28-cp312-cp312-win-amd64.whl &#xff0c;注意这个whl文件…

Java 多线程下的单例模式

单例对象&#xff08;Singleton&#xff09;是一种常用的设计模式。在Java应用中&#xff0c;单例对象能保证在一个JVM中&#xff0c;该对象只有一个实例存在。正是由于这个特 点&#xff0c;单例对象通常作为程序中的存放配置信息的载体&#xff0c;因为它能保证其他对象读到一…

JWT的原理

在谈及jwt原理前,我们其实对jwt并不陌生,对于有经验的码农,大都听过或者实践过,对于一些初学者,凡是谈及安全方面的问题,总是觉得很复杂,感觉不是自己能搞得懂得,但其实无非也是加密解密的过程,不要想的太复杂,我们先说一说JWT在生产上的应用 JWT在生产上的应用 传递用户身份信…

Android系统中使用Cunit测试C/C++接口

Android系统中使用Cunit测试C/C接口 Cunit是C/C语言的单元测试框架&#xff0c;但常用于Windows和Linux开发中。 Android系统中经常有jni、so库、hal service等都是C/C实现&#xff0c;本文讲解如何将Cunit嵌入Android中&#xff0c;用于测试一些C/C api。 Cunit简介 Cunit是很…

全面解析“由于找不到hid.dll,无法继续执行代码”的4个解决方法

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“找不到hid.dll”。这个问题通常出现在尝试运行某个程序或访问某个设备时。那么&#xff0c;当我们遇到这个问题时&#xff0c;应该如何解决呢&#xff1f;本文将详细介绍找不到hid.dll的解…

高校需要哪些大数据实训平台?

当前&#xff0c;数据已成为重要的生产要素&#xff0c;大数据产业作为以数据生成、采集、存储、加工、分析、服务为主的战略性新兴产业&#xff0c;是激活数据要素潜能的关键支撑&#xff0c;是加快经济社会发展质量变革、效率变革、动力变革的重要引擎。 泰迪大数据实验…