鄂尔多斯市建设厅网站小学做试卷的网站

news/2025/9/23 1:33:36/文章来源:
鄂尔多斯市建设厅网站,小学做试卷的网站,深圳龙岗区吉华街道邮编,中国商业银行官网前言 我们常用的字符串拼接方法有两个#xff0c;一个是通过“”号实现字符串的拼接#xff0c;还一个就是通过join方法来实现拼接#xff0c;前者在写法上更加便利#xff0c;和数字之间的加法运算一样#xff0c;通常只有两个运算对象#xff0c;只不过他们的运算规则…前言 我们常用的字符串拼接方法有两个一个是通过“”号实现字符串的拼接还一个就是通过join方法来实现拼接前者在写法上更加便利和数字之间的加法运算一样通常只有两个运算对象只不过他们的运算规则有所不同字符的加法规则是“拼接”数字的加法规则是“数值相加”而join方法处理的对象通常是多个字符串他们使用相同的拼接符号进行拼接最终得到一个字符串。值得注意的是除了操作对象的个数不同以外这两个功能几乎可以相互平替对方。 例子 来看一个具体例子分别使用“方法和join方法实现n个字符串的拼接,如果使用”号实现可能会相对复杂需要一个额外的for循环因为它一次性只能操作两个字符串而使用join则方便很多具体代码实现如下当然除了简单实现这两个方法外还实现了clock这个装饰器用来统计执行的耗时和空间大小粗略计算。 from tools import clockclock(True, False) def add(s_list):res for s in s_list:res sreturn resclock(True, False) def join(s_list):return .join(s_list)def main():for i in range(9):s_count int(pow(10, i))s_list [abc for _ in range(s_count)]add(s_list)join(s_list)add_cost_time add.cost_timejoin_cost_time join.cost_timeprint(f字符串的个数:{s_count} add耗时:{add_cost_time}ns join耗时:{join_cost_time}ns, end )if join_cost_time 0:print(fadd耗时是join的{add_cost_time // join_cost_time}倍)else:print()if __name__ __main__:main()执行结果如下 通过运行结果可以发现随着操作的字符串的个数的增加add方法和join方法他们使用的空间大小几乎保持一致因为得到的结果是一样的但是从10^5这个量级开始add方法的耗时就比join方法的耗时明显高很多并且每增加一个量级耗时也会相应增加一个量级。那么为什么会有这样的一个结果呢 源码探索 如果想知道为什么那就必须要搞清楚这两个方法的实现方式和细节才能搞明白为什么会有如此大的差距。如果你经常看某个方法的具体实现方式的话以join方法为例我相信你肯定会立马按住ctrl键然后鼠标左键当然这里不同的编辑器和快捷键会有所差别跳到它的源代码 可惜这次不幸的是它只给你留下了一段注释和和一个占位符pass通过注释可以知道它告诉了我们join方法的功能就是通过指定的分隔符来拼接多个字符串的但是却没有透露给你它的实现细节。 对于有一定经验的小伙伴来说可能已经猜到答案了它的实现在它的源码中在更深的一个层次。没错它的实现在python的源代码中在c语言这一层。通过下面这个图你可能就知道了 str作为python中最常用的内建对象之一当然也在Objects这个目录中。至于它是如何找到并调用objects中对应方法的这个问题可以留给大家去探索虽然我也还没搞明白 如何找源码 在进行源码分析之前首要的任务就是如何找到它最重要的一个参考就是如上的截图它列举出来了python源代码中每个目录代表的含义其中Lib和Modules中包含了所有的标准库Objects包含了所有的Python内建对象通过这三个目录我们应该就可以找到大部分我们需要的内容了。 注意虽然这个是py2具体一点是py2.4左右的但是根据我的对比这些目录的含义基本上是没有变化的只不过它内部的具体内容特别是源代码可能发生了很大的变化如果你的版本越高的话。就拿我现在看的是py3.11的代码来看它的源代码几乎是重新写了一遍虽然只对比了几处。 join源码分析 str是python的内置对象因此它的源代码应该在Objects目录中具体的位置可以根据该目录下文件的命名来判断这个方法可能有点愚蠢因为完全凭经验没有具体的逻辑主要是我也没有找到更好的方法 。这里join方法的实现就在这个join.h文件中具体方法是(bytes_join)(PyObject *sep, PyObject *iterable)。我不知道大家第一眼看到这个源码的感觉是什么样的如果你对c语言掌握的比较好的话可能会感到很亲切如果你像我一样只是了解一点对c语言的掌握已经停留在了大一学习那会儿…的话可能会比较头疼哈哈哈。不过这些都不重要因为当我真正沉下心去看还是能够理解它的大概意思的看的过程中特别要注意它的注释和变量名对于python这样的知名项目的源码你绝对可以相信它取的变量名能够达到“见名之意”的作用这两个我认为是理解的它的关键切入点。此外还可以借助强大的AI来协助我们理解带代码如下图所示它基本上完全地解释了整个方法的步骤。 接下来我们进入正题排除掉开头的一些逻辑判断我们可以将这个方法的核心逻辑分为三点 计算出序列中所有字符串拼接起来需要开辟的空间 在这个循环计算的过程中可能有两个报错情况一个是itemlen PYSSIZE_T_MAX - sz和seplen PY_SSIZE_T_MAX - sz这个主要是防止需要开辟的空间大于最大值PYSSIZE_T_MAX另外一个报错就是sequence changed size during iteration这个报错我相信大家比较熟悉一不小心在循环中修改列表的大小就会报出这个错误。 申请空间 写入数据 注意这里是先计算出需要开辟的空间然后只进行一次空间的申请。 法的源码分析 还是和上面的一样如果对c语言了解比较浅的同学可以借助强大的ai来协助我们一起来理解源码 抛开一些判断的逻辑其大致的核心逻辑如下 1.计算出旧字符串的长度2.根据旧字符串的长度之和创建新的字符串对象3.分别将旧的left和right字符串写入到新的字符串中 注意这里创建新的对象时就会进行空间的申请 大家有没有发现不管是join方法还是“”法方法都会创建新的对象进行一次空间申请但是细心的小伙伴一定发现了如果随着操作对象的数量增加join方法始终都只需要进行一次空间的申请而“”法方法随着操作对象的数量的增加它申请空间的次数也会随之增加准确的说如果有nn2个操作对象那么“”法需要进行n-1次空间申请假设它们每次申请空间的耗时都相同那么对n个对象进行拼接的耗时比就是“”法/join n-1/1所以上面例子是不是就说得通啦。 更多内容可以前往博主的个人博客系统白日梦想园。

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

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

相关文章

虚拟技术对网站建设维护的影响建站售后服务

插入排序算法 (1)概念:通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应的位置并插入。 (2)一个通俗的比喻: 插入排序就类似于斗地主时&#xf…

做暧电影在线观看网站石家庄自适应网站建设

前言 在部分场景搭建中需要整齐摆放一些物品(如仓库中的货堆、货架等),因为有交互的操作在单个模型上,每次总是手动拖动模型操作起来也是繁琐和劳累。 在这背景下,我编写了一个在运行或者编辑状态下都可以进行一键排序…

广州做网站平台的企业西安市建设工程信息王

这节主要讨论sizeof和strlen的区别,以及一些理解题。 sizeof 求的是对象的大小,深入理解一点就是:这个对象,他一定有一块对应的内存空间。求的就是这一块内存空间。 strlen 只能用来求字符串, 求取的是字符串的长度。…

qq怎么做自己的网站微信开放平台管理员怎么解除

一、前言 iVX是啥,不理解的小伙伴可以猛戳这里 ----------------------点我 二、iVX平台和现有编程语言的对比 三、iVX平台和现有编程语言的对比 1、快速学习(周期短) iVX逻辑上相对是比较简单的 所以初学者的话只需要从逻辑和具体功…

江苏住房与城乡建设部网站什么网站可以教做面包

在C#中,接口回调是指通过将一个接口实例赋值给一个回调函数,然后在适当的时候调用该回调函数,以实现异步通信或事件处理等功能。在接口回调中,判断是第几次调用可以通过以下方法实现: 使用计数器:在接口中…

广州市城乡建设局网站如何免费自己建网站

文章目录 1、跨站 脚本攻击1.1、漏洞描述1.2、漏洞原理1.3、漏洞危害1.4、漏洞验证1.5、漏洞分类1.5.1、反射性XSS1.5.2、存储型XSS1.5.3、DOM型XSS 2、XSS攻防2.1、XSS构造2.1.1、利用<>2.1.2、JavaScript伪协议2.1.3、时间响应 2.2、XSS变形方式2.2.1、大小写转换2.2.2…

网站地图什么格式h5微信小程序

文章目录 引言inpaint函数的使用方法鼠标事件回调函数cv2.setMouseCallback介绍去水印步骤实现代码 引言 本文主要基于cv2.inpaint函数实现图片的水印去除。 inpaint函数基于图像修复算法&#xff0c;通过对缺陷区域周围像素的分析和插值&#xff0c;生成合适的像素值来填充缺…

餐饮网站开发毕业设计模板福州网站设计招聘

gpio-keys是基于input子系统实现的一个通用的GPIO按键驱动,基于platform来实现,位于drivers/input/keyboard/gpio_keys.c,这个文件是硬件无关的,而硬件有关的需要我们自己来注册.进入这个gpio_keys.c这个函数,第一步就是初始化.static int __init gpio_keys_init(void){return …

海淀网站建设哪家公司好上海网站建设企业名录

3.3.2 集合基础 学习目标 这一节&#xff0c;我们从 基础知识、简单实践、小结 三个方面来学习。 基础知识 简介 所谓的集合&#xff0c;主要是针对多个条件表达式组合后的结果&#xff0c;尤其是针对于逻辑场景的组合。初中数学的相关逻辑示意图&#xff1a;表现样式 两个…

历史文化类网站源码免费看电视剧的网站在线观看

7寸LCD屏幕的屏幕排线中采用的供电电压是5V供电&#xff0c;但是在屏幕工作时需要VCOM-5.3V、AVDD-12.5V、VGL--7V、VGH-17V几组电压&#xff0c;所以要对初始的5V电源进行DC-DC电压变换&#xff0c;在这里我们用到了双电荷泵电路。 再此电路中VCC_5V为电源输入&#xff0c;E…

桐庐做网站免费企业邮箱账号密码

有网友私信小编说&#xff0c;小编的文章很好&#xff0c;讲解的也很详细&#xff0c;但是有些知识点很深奥&#xff0c;对初学者不是很友好&#xff0c;回想小编的文章虽然几乎每条代码都有介绍&#xff0c;但是很多函数没有太详细&#xff0c;小编后期会重启《每天一分钟&…

后台做网站的题html5购物网站

总结这两天研究的蓝牙串口。人话版资料不多&#xff0c;主要靠翻别人的仓库和文档。 单片机部分&#xff0c;与蓝牙串口通信是通过串口。比我想的要简单&#xff0c;小程序部分&#xff0c;有非常多的服务和特征&#xff0c;而且人话版资料不多。 如果本文有什么问题&#xf…

泉州网站设计公司织梦网站访问量统计代码

一个完整的嵌入式linux系统包含4部分内容&#xff1a;Bootloader、Parameters、Kernel、Root File System。3、4、5、6部分详细介绍了这4部分的内容&#xff0c;这是Linux底层软件开发人员应该掌握的。通过学习这些章节&#xff0c;您可以详细了解到如何在一个裸板上裁减、移植…

江苏中淮建设集团有限公司网站网站建设安全性原则

caozha-admin 后台管理框架 1.8.3 caozha-admin是一个通用的PHP网站后台管理框架&#xff0c;基于开源的ThinkPHP开发&#xff0c;特点&#xff1a;易上手&#xff0c;零门槛&#xff0c;界面清爽极简&#xff0c;极便于二次开发。 基础功能 1、系统设置 2、管理员管理 3、…

成都网站建设_创新互联可以做申论的网站

文章目录 一.JWT 介绍二.JWT认证与session认证的区别2.1 基于session认证流程图2.2 基于jwt认证流程图 三. JWT 的构成3.1 header : 头部3.2 payload : 负载3.2.1 标准中注册的声明 (建议但不强制使用)3.2.2 公共的声明3.2.3 私有的声明3.2.4 定义一个payload 3.3 signatrue : …

iis 网站压缩外贸网站 费用

文章目录 下载数据集NSL-KDD数据集介绍输入的41个特征输出的含义数据处理&&训练技巧建神经网络&#xff0c;输入41个特征&#xff0c;输出是那种类别的攻击模型训练模型推理写gradio前端界面&#xff0c;用户自己输入41个特征&#xff0c;后端用模型推理计算后显示出是…

网络建设文章网站wordpress汉字验证码

文章目录 SQL概述SQL背景知识SQL分类 SQL语言的规则与规范SQL语言的规则SQL大小写规范注释命令规则&#xff08;暂时了解&#xff09;数据导入指令 基本的select语句select ...select ... from列的别名去除重复行空值参与运算着重号查询常数 显示表结构讲课代码课后练习 SQL概述…

网站开发南京招聘中英文对照网站怎么做

在上一篇中已经分享了用 Python 创建词云了。接下来继续总结其他创建词云的方法。&带道术用量确示常构端析以要效开的用&#xff0c;近不gt;> Create Word Cloud via JavaScrip要圈器是天的年编功小还久概据含直这请框结业未商屏页屏随会维气大机域页效实一应控高标tJav…

seo百家外链网站怎么做网页 网站制作

工具&#xff1a; cloc 下载地址&#xff1a; Releases AlDanial/cloc GitHub 使用方法&#xff1a;

百度小程序如何做网站网站建设费专票会计分录

数据流图(DFD)提供了系统内信息流(即数据流)的可视化表示。通过绘制数据流程图&#xff0c;您可以了解由参与系统流程的人员提供并交付给他们的信息、完成流程所需的信息以及需要存储和访问的信息。本文以一个订餐系统为例&#xff0c;对数据流图(DFD)进行了描述和说明。食品订…