python字符串拼接+和join的区别详解


Posted in Python onDecember 03, 2020

python在进行字符串的拼接时,一般有两种方法,一种是使用+直接相加,另一种是使用join

a = "tests"
b = "teststs"
 
# 使用 + 
c = a + b
 
# 使用join
c = "".join(a,b)

这两种,其实在性能上具有比较大的差别,当然如果拼接的字符串的个数不多,就感受不到这种差别。

先谈谈这两种拼接方式各自的原理吧。

1. 使用 +

首先需要知道的是,在python中字符串属于不可变对象。

当用操作符+连接字符串的时候,由于字符串是不可变对象,其工作原理实际上是这样的:如果要连接如下字符串:S1+S2+S3+.......+SN,执行一次+操作便会在内存中申请一块新的内存空间,并将上一次操作的结果和本次操作的右操作数复制到新申请的内存空间,即当执行S1+S2的时候会申请一块内存,并将S1、S2复制到该内存中,依次类推,这样就要进行N-1次内存空间的申请了,非常影响效率。

2.使用 join

当使用join时,会一开始就计算出所需要的总的内存空间,也就是说只需要进行一次内存空间的申请,相比 使用 + ,效率提升巨大。 

举个栗子

python字符串拼接+和join的区别详解

当依次增加字符串的个数,得到如下的时间对比:

python字符串拼接+和join的区别详解

不过也确实看出,只有当拼接的字符串个数达到较大级别时,才能被我们人为感知到吧,但是性能优化本来就是在多个地方一点点积累起来的。

总结

到此这篇关于python字符串拼接+和join区别的文章就介绍到这了,更多相关python字符串拼接+和join区别内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python进阶教程之异常处理
Aug 30 Python
python dataframe 输出结果整行显示的方法
Jun 14 Python
Python之list对应元素求和的方法
Jun 28 Python
Python动态导入模块的方法实例分析
Jun 28 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
Feb 16 Python
Python字符串逆序输出的实例讲解
Feb 16 Python
Python正则表达式急速入门(小结)
Dec 16 Python
Jupyter notebook 启动闪退问题的解决
Apr 13 Python
pyinstaller将含有多个py文件的python程序做成exe
Apr 29 Python
python链表类中获取元素实例方法
Feb 23 Python
Python基于Opencv识别两张相似图片
Apr 25 Python
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
Jun 09 Python
python二维图制作的实例代码
Dec 03 #Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
Dec 03 #Python
Python 按比例获取样本数据或执行任务的实现代码
Dec 03 #Python
用 Django 开发一个 Python Web API的方法步骤
Dec 03 #Python
分享unittest单元测试框架中几种常用的用例加载方法
Dec 02 #Python
python 使用cycle构造无限循环迭代器
Dec 02 #Python
python 使用csv模块读写csv格式文件的示例
Dec 02 #Python
You might like
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
2016/12/24 PHP
php图形jpgraph操作实例分析
2017/02/22 PHP
php实时倒计时功能实现方法详解
2017/02/27 PHP
laravel Validator ajax返回错误信息的方法
2019/09/29 PHP
jquery ajax 登录验证实现代码
2009/09/23 Javascript
javascript 的Document属性和方法集合
2010/01/25 Javascript
jquery动画1.加载指示器
2012/08/24 Javascript
实用的Jquery选项卡TAB示例代码
2013/08/28 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
js实现TAB切换对应不同颜色的代码
2015/08/31 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
2016/11/26 Javascript
Bootstrap表格使用方法详解
2017/02/17 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
node前端模板引擎Jade之标签的基本写法
2018/05/11 Javascript
浅谈Webpack 是如何加载模块的
2018/05/24 Javascript
如何使用Node.js爬取任意网页资源并输出PDF文件到本地
2019/06/17 Javascript
python查询sqlite数据表的方法
2015/05/08 Python
python线程中同步锁详解
2018/04/27 Python
使用python 3实现发送邮件功能
2018/06/15 Python
实践Vim配置python开发环境
2018/07/02 Python
解决python运行效率不高的问题
2020/07/20 Python
Python爬虫+Tkinter制作一个翻译软件的示例
2021/02/20 Python
使用HTML和CSS3绘制基本卡通图案的示例分享
2015/11/06 HTML / CSS
CSS3近阶段篇之酷炫的3D旋转透视
2016/04/28 HTML / CSS
销售所有的狗狗产品:Dog.com
2016/10/13 全球购物
阿迪达斯俄罗斯官方商城:adidas俄罗斯
2017/03/08 全球购物
在加拿大在线租赁和购买电子游戏:Game Access
2019/09/02 全球购物
自主招生自荐信范文
2013/12/04 职场文书
申报职称专业技术个人的自我评价
2013/12/12 职场文书
英文演讲稿
2014/05/15 职场文书
图书室标语
2014/06/21 职场文书
2015毕业生自我评价范文
2015/03/02 职场文书
2016公司中秋节寄语
2015/12/07 职场文书
2016见义勇为事迹材料汇总
2016/03/01 职场文书
python使用pygame创建精灵Sprite
2021/04/06 Python