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

python统计字符串中大小写字符个数的性能实测与分析

给定一个字符串,统计字符串中大写字符个数,有如下三种方法:

# method1
s1 = len(re.findall(r'[A-Z]',content))
# method2
s2 = sum(1 for c in content if c.isupper())
# method3
s3 = 0
for c in content:if c.isupper()==True:s3+=1

经过多次实测后,方法1是最快的,方法3是最慢的。下面是其中某一次的实际时间消耗:

(method1) upper char count by re:0.11256217956542969s
(method2) upper char count by for-sum:0.36724019050598145s
(method3) upper char count by for-loop:0.5580060482025146s

改为统计字符串中大写字符个数和小写字符个数后:

s11 = len(re.findall(r'[A-Z]',content))
s12 = len(re.findall(r'[a-z]',content))s21 = sum(1 for c in content if c.isupper())
s22 = sum(1 for c in content if c.isupper())s3 = 0
s4 = 0
for c in content:if c.isupper()==True:s3+=1else:s4+=1

性能也满足上面的规律:

upper char count by re:0.40007758140563965s
upper char count by for-sum:0.6471347808837891s
upper char count by for-loop:0.918128252029419s

原因分析:

  • 正则表达式在匹配上是有算法优化过的
  • 正则只处理26个英文字母,而其他方法要处理所有字符(包括特殊符号等等),这样其他方法处理的字符数量比正则这种方法要多

相关文章:

python统计字符串中大小写字符个数的性能实测与分析

给定一个字符串,统计字符串中大写字符个数,有如下三种方法: # method1 s1 len(re.findall(r[A-Z],content)) # method2 s2 sum(1 for c in content if c.isupper()) # method3 s3 0 for c in content:if c.isupper()True:s31经过多次实测…...

时间序列预测实战(十九)魔改Informer模型进行滚动长期预测(科研版本)

论文地址->Informer论文地址PDF点击即可阅读 代码地址-> 论文官方代码地址点击即可跳转下载GIthub链接 个人魔改版本地址-> 文章末尾 一、本文介绍 在之前的文章中我们已经讲过Informer模型了,但是呢官方的预测功能开发的很简陋只能设定固定长度去预测未…...

[PyTorch][chapter 64][强化学习-DQN]

前言: DQN 就是结合了深度学习和强化学习的一种算法,最初是 DeepMind 在 NIPS 2013年提出,它的核心利润包括马尔科夫决策链以及贝尔曼公式。 Q-learning的核心在于Q表格,通过建立Q表格来为行动提供指引,但这适用于状态…...

用好语言模型:temperature、top-p等核心参数解析

编者按:我们如何才能更好地控制大模型的输出? 本文将介绍几个关键参数,帮助读者更好地理解和运用 temperature、top-p、top-k、frequency penalty 和 presence penalty 等常见参数,以优化语言模型的生成效果。 文章详细解释了这些参数的作用…...

python之pycryptodome模块,加密算法库

一、简介 PyCryptodome是PyCrypto库的一个分支,它是Python中最受欢迎的密码学库之一。PyCryptodome提供了许多密码学算法和协议的实现,包括对称加密、非对称加密、消息摘要、密码哈希、数字签名等。它还提供了一些其他功能,如密码学安全随机…...

IDEA如何将本地项目推送到GitHub上?

大家好,我是G探险者。 IntelliJ IDEA 是一个强大的集成开发环境(IDE),它支持多种编程语言和工具。它也内置了对Git和GitHub的支持,让开发者可以轻松地将本地项目推送到GitHub上。以下是一个操作手册,描述了…...

Leetcode—45.跳跃游戏II【中等】

2023每日刷题&#xff08;四十&#xff09; Leetcode—45.跳跃游戏II 贪心法思想 实现代码 #define MAX(a, b) (a > b ? (a) : (b))int jump(int* nums, int numsSize) {int start 0;int end 1;int ans 0;int maxStride 0;while(end < numsSize) {maxStride 0;fo…...

基于Vue+SpringBoot的木马文件检测系统

项目编号&#xff1a; S 041 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S041&#xff0c;文末获取源码。} 项目编号&#xff1a;S041&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 木马分类模块2.3 木…...

springboot内置Tomcat流程

1、org.springframework.boot.SpringApplication#initialize setInitializers((Collection) getSpringFactoriesInstances(ApplicationContextInitializer.class));加载了org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext 2、spring refres…...

Android修行手册-溢出父布局的按钮实现点击

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分…...

Transformer——decoder

上一篇文章&#xff0c;我们介绍了encoder&#xff0c;这篇文章我们将要介绍decoder Transformer-encoder decoder结构&#xff1a; 如果看过上一篇文章的同学&#xff0c;肯定对decoder的结构不陌生&#xff0c;从上面框中可以明显的看出&#xff1a; 每个Decoder Block有两个…...

基于 STM32 的温度测量与控制系统设计

本文介绍了如何基于 STM32 微控制器设计一款温度测量与控制系统。首先&#xff0c;我们将简要介绍 STM32 微控制器的特点和能力。接下来&#xff0c;我们将详细讨论温度传感器的选择与接口。然后&#xff0c;我们将介绍如何使用 STM32 提供的开发工具和相关库来进行温度测量和控…...

python之pyqt专栏3-QT Designer

从前面两篇文章python之pyqt专栏1-环境搭建与python之pyqt专栏2-项目文件解析&#xff0c;我们对QT Designer有基础的认识。 QT Designer用来创建UI界面&#xff0c;保存的文件是"xxx.ui"文件&#xff0c;"xxx.ui"可以被pyuic转换为"xxx.py",而&…...

【鸿蒙应用ArkTS开发系列】- 云开发入门实战二 实现省市地区三级联动地址选择器组件(下)

文章目录 概述端云调用流程端侧集成AGC SDK端侧省市地区联动的地址选择器组件开发创建省市数据模型创建省市地区视图UI子组件创建页面UI视图Page文件 打包测试总结 概述 我们在前面的课程&#xff0c;对云开发的入门做了介绍&#xff0c;以及使用一个省市地区联动的地址选择器…...

HCIA题目解析(1)

1、【多选题】关于动态 MAC 地址表说法正确的是&#xff1f; A、通过报文中的源MAC地址学习获得的动态MAC表项会老化 B、通过查看指定动态MAC地址表项的个数&#xff0c;可以获取接口下通信的用户数 C、在设备重启后&#xff0c;之前的动态表项会丢失 D、在设备重启后&…...

运维高级-day02

一、编写系统服务启动脚本 RHEL6风格 1、Linux运行级别 Linux运行有七个级别 级别 描述 0 停机状态&#xff0c;系统默认运行级别不能设置为0&#xff0c;否则系统不能正常启动。使用init0命令&#xff0c;可关闭系统 1 单用户状态&#xff0c;此状态仅root用户可登录。用…...

虹科分享 | 平衡速度和优先级:为多样化的实时需求打造嵌入式网络(2)——实时通信系统的需求

现代实时应用的复杂性和需求不断增加&#xff0c;需要强大而可靠的通信系统。正如本系列第一部分所述&#xff0c;这些应用涵盖从秒到毫秒的广泛响应时间要求&#xff0c;它们的成功通常取决于其响应的精确时间。因此&#xff0c;所选的通信系统必须能够满足这些严格的时序限制…...

佳易王各行业收银管理系统软件,企业ERP管理软件,企业或个体定制开发软件以及软件教程资源下载总目录,持续更新,可关注收藏查阅

系统简介 1、佳易王软件功能实用、操作简单、软件绿色免安装&#xff0c;解压即可使用&#xff0c;软件已经内置数据库&#xff0c;不需再安装其他数据库文件。 2、佳易王软件&#xff0c;已经形成系列&#xff0c;上百款管理系统软件涵盖多个行业。 3、已为多个企业个体定制…...

C_4练习题

一、单项选择题&#xff08;本大题共20小题&#xff0c;每小题2分&#xff0c;共40分。在每小题给出的四个备选项中选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。) 定义如下变量和数组&#xff1a; int i; int x[3][3]{1,2,3,4,5,6,7,8,9}; 则下面语句的输…...

自动化测试-Selenium

一. Selenium介绍 selenium 是用来做web自动化测试的框架,支持各种浏览器,各种,支持各种语言 原理: 二. 元素定位 2.1 XPath 定位 绝对路径: /html/head/title 相对路径以双斜杠开头,常见的相对路径定位有以下几种: <1>相对路径索引: 索引是从1开始的 <2>相…...

GBase 8a数据库双活容灾方案之GVR工具原理介绍

南大通用&#xff08;gbase database)可视化集群双活同步工具软件&#xff08;GBase Visio Rsynctool&#xff09;&#xff0c;是GBASE南大通用自主研发的、专门适用于GBase 8a MPP Cluster的集群间同步工具。通过 GVR&#xff0c;可以灵活高效的实现集群间的数据同步&#xff…...

你的 Vue 3 defineAsyncComponent(),VuReact 会编译成什么样的 React?

VuReact 是一个能将 Vue 3 代码编译为标准、可维护 React 代码的工具。今天就带大家直击核心&#xff1a;Vue 中用于异步组件的 defineAsyncComponent() 经过 VuReact 编译后会变成什么样的 React 代码&#xff1f; 前置约定 为避免示例代码冗余导致理解偏差&#xff0c;先明…...

AI辅助开发术语体系深度剖析

随着生成式AI与软件开发的深度融合&#xff0c;一系列全新的术语和开发范式应运而生。这些概念并非孤立存在&#xff0c;而是相互关联、层层支撑&#xff0c;共同构成了当前AI编程的新骨架。对于有一定基础的开发者而言&#xff0c;系统性掌握这套术语体系&#xff0c;不仅能提…...

从零开始:30分钟搭建AI驱动的自动化测试平台Testsigma

从零开始&#xff1a;30分钟搭建AI驱动的自动化测试平台Testsigma 【免费下载链接】testsigma Testsigma is an agentic test automation platform powered by AI-coworkers that work alongside QA teams to simplify testing, accelerate releases and improve quality acros…...

如何高效使用跨平台控制工具:Lan Mouse完整实战指南

如何高效使用跨平台控制工具&#xff1a;Lan Mouse完整实战指南 【免费下载链接】lan-mouse mouse & keyboard sharing via LAN 项目地址: https://gitcode.com/gh_mirrors/la/lan-mouse 你是否厌倦了在多台电脑间频繁切换键盘鼠标&#xff1f;是否希望用手机就能轻…...

【Blender】别再只会 “搭积木”!Blender 点线面编辑,新手建模的真正起点

&#x1fae7;个人主页&#xff1a;小年糕是糕手 &#x1f4ab;个人专栏&#xff1a;《C》《Linux》《数据结构》《Blender》 &#x1f3a8;你不能左右天气&#xff0c;但你可以改变心情&#xff1b;你不能改变过去&#xff0c;但你可以决定未来&#xff01; 目录 从 “搭积木…...

国民技术 N32G031K8L7 LQFP-32 单片机

内核CPU 32位ARM Cortex-M0 内核&#xff0c;单周期硬件乘法指令 最高主频48MHz 加密存储器 - 高达64KByte片内Flash&#xff0c;支持加密存储&#xff0c;支持硬件ECC校验&#xff0c;10万次擦写次数&#xff0c;10年数据保持 一8KByte片内SRAM&#xff0c;支持硬件奇偶校验 低…...

3步轻松实现Windows任务栏透明化:TranslucentTB完整使用指南

3步轻松实现Windows任务栏透明化&#xff1a;TranslucentTB完整使用指南 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 你是否厌倦了Win…...

深入解析ToTensor():从PIL到OpenCV的图像预处理最佳实践

1. ToTensor()的隐藏技能&#xff1a;不只是格式转换 很多人第一次看到ToTensor()这个函数名时&#xff0c;都会以为它只是简单地把图像数据转换成PyTorch的Tensor格式。但当我深入研究源码后才发现&#xff0c;这个函数背后藏着不少容易被忽略的重要细节。让我用一个实际项目中…...

惠普OMEN游戏本终极性能解锁指南:OmenSuperHub开源工具完全解析

惠普OMEN游戏本终极性能解锁指南&#xff1a;OmenSuperHub开源工具完全解析 【免费下载链接】OmenSuperHub 使用 WMI BIOS控制性能和风扇速度&#xff0c;自动解除DB功耗限制。 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 还在为官方Omen Gaming Hub的臃…...